【发布时间】:2018-01-02 10:42:48
【问题描述】:
知道TParent 对象包含ICollection<TChild>,我正在尝试将IEnumerable<Tuple<TParent, TChild>> 转换为IEnumerable<TParent>。
我是这样开始的,但我现在真的不知道如何标准化结果:
for (int i = 0; i < resultEnumerable.Count(); i++)
{
var parent = resultEnumerable.ElementAt(i).Item1;
var child = resultEnumerable.ElementAt(i).Item2;.........
}
【问题讨论】:
-
myEnumerable.Select(tupleItem => tupleItem.Item1)? -
很好的编辑@JasonBoyd - 击败我;到 OP (user3574857) - 下一次,你可能想look here 看看如何为内联代码完成“降价” - 它比有时看起来更容易!
-
虽然不够好@Jason哈哈
-
不相关的一点:使用
i < resultEnumerable.Count()是一个真的,真的 坏主意 - 取决于resultEnumerable是什么,这可能是迭代序列一次每i- 所以你会做N+1循环N而不是1循环N。foreach将是首选方式。还应该注意ElementAt(i)具有未定义的性能,并且可以也为O(i)(平均为N/2- 两次,所以N)所以现在我们在@ 987654339@ 性能!,与N相比,简单的foreach
标签: c# tuples ienumerable icollection