如何在C#中搜索列表

时间:2010-08-10 09:59:29

标签: c# arrays search

我有一个这样的清单:

List<string[]> countryList

并且字符串数组的每个元素是另一个包含3个元素的数组。

所以countryList[0]可能包含数组:

new string[3] { "GB", "United Kingdom", "United Kingdom" };

如何在countryList搜索特定数组,例如如何搜索countryList

new string[3] { "GB", "United Kingdom", "United Kingdom" }?

2 个答案:

答案 0 :(得分:10)

return countryList.FirstOrDefault(array => array.SequenceEqual(arrayToCompare));

要简单地建立存在,请使用countryList.Any。 要查找元素的索引或-1(如果不存在),请使用countryList.FindIndex

答案 1 :(得分:1)

// this returns the index for the matched array, if no suitable array found, return -1

public static intFindIndex(List<string[]> allString, string[] string)
{
    return allString.FindIndex(pt=>IsStringEqual(pt, string));
}


 private static bool IsStringEqual(string[] str1, string[] str2)
{
   if(str1.Length!=str2.Length)
      return false;
   // do element by element comparison here
   for(int i=0; i< str1.Length; i++)
   {
      if(str1[i]!=str2[i])
         return false;
   }
   return true;
}