Как искать список в C # - PullRequest
       8

Как искать список в C #

6 голосов
/ 10 августа 2010

У меня есть такой список:

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 ]

10 голосов
/ 10 августа 2010
return countryList.FirstOrDefault(array => array.SequenceEqual(arrayToCompare));

Чтобы просто установить существование, используйте countryList.Any.Чтобы найти индекс элемента или -1, если он не существует, используйте countryList.FindIndex.

1 голос
/ 10 августа 2010
// 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...