如何使用Linq将两个数组合并为内聚对象?

时间:2015-11-13 18:01:38

标签: c# linq

我有以下两个数组

var employeeIds = new [] {1, 2, 3, 4};

var employeeNames = new [] {"Sarah", "Connor", "Julia", "Igor" };

我需要Zip他们,所以我可以将上述内容与数组合并,使索引employeeId的{​​{1}}与索引n的{​​{1}}合并。所以我可以获得如下的

匿名对象
employeeName

我如何在Linq中做到这一点?如果我可以在Linq中获得n,那就可以了,但IEnumerable不是有序集合,因此没有索引。

1 个答案:

答案 0 :(得分:5)

您提到Zip - 为什么不使用它?

employeeNames.Zip(employeeIds, (name, id) => new { Id = id, Name = name });

Enumerable.Zip的MSDN:https://msdn.microsoft.com/library/dd267698(v=vs.100).aspx

此外,因为您提到它,您可以根据需要使用Select方法访问索引:

var employeeNames = new [] {"Sarah", "Connor", "Julia", "Igor" };
var indices = employeeNames.Select( (name, index) => index );