我编写了可行的代码,但如果它们具有相同的索引,我似乎无法找到将这些列表组合在一起的更好方法。
class Apple {};
class Carrot {};
var apples = new list<Apple>();
var carrot = new list<Carrot>();
var combine = from a in apples
from c in carrots
where apples.IndexOf(a) == carrots.IndexOf(c)
select new {a, c};
(当我说组合时,我的意思并不是追加到列表的末尾。{{a,b},{a,b},.... {}}:也许我的术语错了试图研究。)
答案 0 :(得分:19)
您可以使用Enumerable.Zip
:
var combine = apples.Zip(carrots, (a, c) => new { Apple = a, Carrot = c});
答案 1 :(得分:2)
apples.Select((a,i)=> new { Apple = a, Carrot = carrots[i] });
这也应该有用。