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

У меня есть список вроде:

List<string[]> countryList
</string[]>

и каждый элемент массива строк представляет собой еще один массив с 3 элементами.

Итак, countryList[0] может содержать массив:

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

Как я могу выполнить поиск countryList для определенного массива, например. как искать countryList для

new string[3] { "GB", "United Kingdom", "United Kingdom" }?
2 ответа

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

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


// 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;
}
</string[]>

licensed under cc by-sa 3.0 with attribution.