我有一系列对象可以用于某些过程。
var x = new List<MyObject>() { new MyObject(), new MyObject(), ... }.ToArray();
在该过程之后,它返回与每个输入对象相对应的结果数组。
var y = MyProcess(x); // returns List<MyResult>
现在,我的问题是如何查询具有给定条件和相应输入对象的结果列表?
例如,如果y[2].IsOkay
为false
,我想在另一个数组中获取x[2]
和y[2]
。
并且数组x和y中的对象不具有除索引之外的引用键。
答案 0 :(得分:4)
好吧,您可以使用Zip
配对它们:
var pairs = x.Zip(y, (a, b) => new { a, b })
.Where(pair => !pair.b.IsOkay)
.ToArray();
如果需要,您可以更改传递给Zip
的委托以不同的方式组合这两个值 - 例如,使用命名类型而不是我上面提到的匿名类型。