[Unity][C#]數組循環遍歷查找成員變量Array.Find函數

如果是對於數組 的 成員進行查找,如果用 For或者Foreach循環語句,可以查找多個變量。

而Array.Find函數可以 更快的查找一個 數組中 單個變量。

...
List<int> int_list = new List<int>();
...
        if (int_list.Count >0)
        {
            int[] int_array = int_list.ToArray();
            int p = Array.Find(int_array, _p => _p.instanceID == 123);
            Debug.Log("  int: "+ p);
        }
...

List數組如果使用Array.find必須 先轉換 爲Array數組。

 

如果用for或者foreach語句,就會這樣,結果都是一樣。

...
class test : MonoBehaviour
{
...
    List<int> int_list = new List<int>();
...
    void test_int1(){
        if (int_list.Count >0)
        {
            for(int i=0;i< int_list.Count;i++)
            {
                if(int_list[i] == 123)
                {
                Debug.Log("  int: "+ int_list[i]);
                }
            }
        }
    }//test_int1()
...
...
    List<Data_int> Dataint_list = new List<Data_int>();
...
    void test_int2(){
        if (int_list.Count >0)
        {
            for(int i=0;i< 3;i++)
            {
                Data_int data_int = new Data_int();
                data_int.int_1 = i +10;
                data_int.int_2 = i +20;
                data_int.int_3 = i +30;
                Dataint_list.add(data_int);
            }
            int[] Dataint_array = Dataint_list.ToArray();
            Data_int p = Array.Find(Dataint_array, _p => _p.int_2 == 22);
            Debug.Log("  Data_int: "+ p.int_1+"///"+ p.int_2+"///"+ p.int_3+"///");
        }
    }//test_int2()
...
}//end class

/// <summary>
/// 用於存放 保存的數據
/// </summary>
[System.Serializable]
public class Data_int
{
    public int int_1;
    public int int_2;
    public int int_3;
}//Data_int

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章