在C#中的数组列表中查找数组的索引

Sae*_*eid 7 c# arrays list

如果您有一个数组列表,如:

List<int[]> ListOfArrays = new List<int[]>();
ListOfArrays.Add(new int[] { 1, 1 });
ListOfArrays.Add(new int[] { 2, 1 });
Run Code Online (Sandbox Code Playgroud)

您如何在列表中找到{2,1}的索引?

我不想使用迭代循环.我想要一个简洁的方法,如PaRiMaL RaJ在Check中建议的方法是否字符串数组存在于字符串列表中:

list.Select(ar2 => arr.All(ar2.Contains)).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

(如果给定字符串数组的成员存在于字符串数组列表中,则上面的代码将返回true)

Evg*_*rov 9

var myArr = new int[] { 2, 1 };
List<int[]> ListOfArrays = new List<int[]>();
ListOfArrays.Add(new int[] { 1, 1 });
ListOfArrays.Add(new int[] { 4, 1 });
ListOfArrays.Add(new int[] { 1, 1 });
ListOfArrays.Add(new int[] { 2, 1 });

int index = ListOfArrays.FindIndex(l => Enumerable.SequenceEqual(myArr, l));
Run Code Online (Sandbox Code Playgroud)

  • 你可以稍微缩短它:`ListOfArrays.FindIndex(l => l.SequenceEqual(myArr));` (2认同)
  • `ListOfArrays.FindIndex(myArr.SequenceEqual);`也应该有用 (2认同)