Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何整齐地查询对应的对象数组项?_C#_Linq_Lambda - Fatal编程技术网

C# 如何整齐地查询对应的对象数组项?

C# 如何整齐地查询对应的对象数组项?,c#,linq,lambda,C#,Linq,Lambda,我有一个用于某些进程的对象数组 var x = new List<MyObject>() { new MyObject(), new MyObject(), ... }.ToArray(); var x=new List(){new MyObject(),new MyObject(),…}.ToArray(); 处理后,它返回与每个输入对象对应的结果数组 var y = MyProcess(x); // returns List<MyResult> var y=My

我有一个用于某些进程的对象数组

var x = new List<MyObject>() { new MyObject(), new MyObject(), ... }.ToArray();
var x=new List(){new MyObject(),new MyObject(),…}.ToArray();
处理后,它返回与每个输入对象对应的结果数组

var y = MyProcess(x); // returns List<MyResult>
var y=MyProcess(x);//返回列表
现在,我的问题是如何查询具有给定条件和相应输入对象的结果列表

例如,如果
y[2].IsOkay
false
,我希望在另一个数组中同时获得
x[2]
y[2]
。 数组x和y中的对象除了索引外没有引用键。

那么,您可以使用以下方法将它们配对:

var pairs = x.Zip(y, (a, b) => new { a, b })
             .Where(pair => !pair.b.IsOkay)
             .ToArray();

如果需要,您可以更改传递到
Zip
的委托以不同的方式组合这两个值-例如,使用命名类型而不是上面提到的匿名类型。

Zip
对我来说总是很难理解。这是MSDN文档,它很有帮助。。一点。