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文档,它很有帮助。。一点。