FC2ブログ
    09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    Listの値の取り出し方ね…。おじさん新しい書き方とかついていけてません…orz 

    こんにちは。
    大坂です。

    なんかまた、猛烈な腹痛に襲われていますが、よくあることと思って気にしないでおきます(ぇ

    皆さんListに入れた値の取り出しとかどうやってますかね。
    どうにも今までやってた方法でできると他を調べないタイプなのでforで回して一致してたの取ってたんですけど、
    そんなこと書かなくても取れるんですね…。

    とりあえずコード。
        class Item {
    public int item_no;
    public string item_name;
    }

    List list = new List();

    void Start () {
    // 適当に値を入れる
    for(int i = 0; i < 10; i++) {
    Item item = new Item();
    item.item_no = i;
    item.item_name = "item_" + i;
    list.Add(item);
    }

    int ran = Random.Range(0, list.Count);

    Item resultItem_1;
    // forで取得(今まで)
    for(int i = 0; i < list.Count; i++) {
    if(ran == list[i].item_no) {
    resultItem_1 = list[i];
    Debug.Log(resultItem_1.item_name);
    break;
    }
    }

    Item resultItem_2;
    // Findを使用して取得
    resultItem_2 = list.Find(a => a.item_no == ran);
    Debug.Log(resultItem_2.item_name);

    }

    ちゃんと同じ結果が取れますね(当たり前
    ラムダ式的な書き方がどうにも苦手なのであんまり調べたり使ったりしてませんでしたが、
    コード量も減りますしこっちの方がいいですかね。

    上のコードでitem_noが重複してるときは先に入れた方がとれました。
    まぁ一意ので探すとは思いますが一応ってことで。

    ということでこんな書き方もあるよってことでした。

    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/424-97091f08
    この記事にトラックバックする(FC2ブログユーザー)