在数组列表中查找变量

时间:2014-12-12 03:00:51

标签: c#

假设我有一个包含如下内容的数组列表:

var listArray = new List<string[]>():

第一个数组= {code,ID_1,PK_1,ID_2,PK_2} //不知何故喜欢标题

2nd array = {85734,32343,1,66544,2}

3rd array = {59382,23324,1,56998,2}

4rd array = {43234,45334,1,55468,2}

并将这些数组添加到'listArray'。

listArray.Add(array);

我应该怎样做才能匹配列表中的变量?

例如:如果数组的ID_1是'32343',则ID_2 ='66544'。

3 个答案:

答案 0 :(得分:0)

// create
var listArray = new List<string[]>():
string whatIWantToFind = "1234";
string[] mySearchArray = new string[] {"1234", "234234", "324234"};

// fill your array here...

// search
foreach(string[] listItem in listArray)
{
    // if you want to check a single item inside...
    foreach(string item in listItem)
    {
         // you can compare
         if(item == whatIWantToFind)
         {
         }
         // or check if it contains
         if(item.Contains(whatIWantToFind))
         {
         }
    }

    // to compare everything..
    bool checked = true;
    for(int i = 0; i < listItem.lenght; i++)
    {
       if(!listItem[i].Equals(mySearchArray[i])
       {
           checked = false; break;
       }
    }
    // aha! this is the one
    if(checked) {}
}

答案 1 :(得分:0)

如果创建一个包含一个数组的所有数据的类,则可以创建这些对象的主数组。例如:

public class ListItem {
    public string code, ID_1, PK_1, ID_2, PK_2;
}

然后你可以使用这个类:

var listArray = new List<ListItem>();
listArray.add(new ListItem(){ code = 85734, ID_1 = 32343, PK_1 = 1, ID_2 = 66544, PK_2 = 2});
listArray.add(......);

然后,要查找数据,可以在数组中的对象上使用字段访问器:

foreach(var item in listArray)
{
    if (item.ID_1.equals("32343") && item.ID_2.equals("66544"))
        Console.WriteLine("Found item.");
}

答案 2 :(得分:0)

var listArray = new List<string[]>
            {
                new []{ "code", "ID_1", "PK_1", "ID_2", "PK_2"}, 
                new []{ "85734", "32343", "1", "66544", "2"},
                new []{"59382", "23324", "1", "56998", "2"}
            };
 var index = listArray.First().ToList().IndexOf("ID_1");
 var result = listArray.Where((a, i) => i > 0 && a[index] == "32343").ToList();