在列表中查找其第一个元素与条件匹配的所有数组

cab*_*nto 5 c# arrays list multidimensional-array

这是一个非常难以称呼的问题.

在C#中,我有一组int[,]存储在a中的数组List<int[,]> paths,每个数组都包含一组coordenates以形成路径.一个例子是{ {0,0}, {0,1}, {1,1}, {2,1} }.

现在,我想保留paths所有与第一个索引相同的路径,这些路径是与条件匹配的所有路径的第一个索引之一.

为了更好地证明我的意思,说我得到了所有奇怪长度的路径:

paths.Where(x => x.GetLength(0) % 2 == 1).ToList();
Run Code Online (Sandbox Code Playgroud)

假设这返回一个包含一些数组的列表,例如,其第一个坐标为{0,0}或{0,1}.我想pathsbe paths.Where( x=> x第一个COORDS要么是{0,0}或{0,1} ).我怎样才能实现这一目标?

希望我的意思是可以理解的.

A. *_*lto 0

像这样:

var filteredPaths = paths.Where(x => x[0, 0] == 0 && x[0, 1] == 0  ||  x[0, 0] == 0 && x[0, 1] == 1);
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望继续使用相同的集合类型:

List<int[,]> filteredPaths = paths.Where(x => x[0, 0] == 0 && x[1, 0] == 0  ||  x[0, 0] == 0 && x[1, 0] == 1).ToList();
Run Code Online (Sandbox Code Playgroud)