c#中不同类型的两个数组连接

时间:2017-07-11 17:21:53

标签: c# asp.net-mvc linq

我有两个从视图发布到控制器的列表,例如

int[] blablaIds = { 13, 377, 1002 };
int[] secondBlaBlaIds = { 7, 18, 126 };

出于某种原因,我想明确地将它们组合为

int[] combinedIds = { { 7, 13 }, {18, 377}, {126, 1002} }

LINQ可以吗?

2 个答案:

答案 0 :(得分:1)

没有long or int列表,你必须选择一个,然后将另一个列表转换为正确的数据类型。一旦它们是相同的数据类型,您就可以轻松地连接两个列表。

longIds.Concat(intIds.Cast<long>());

正如Jon Skeet在评论中指出的那样,你的问题在目前的形式中难以回答。如果您要创建第一个和第二个项目的配对列表,可以尝试使用.Zip。如果你想要在同一个集合中共存并且渴望共存,你仍然需要做一些演员。这是一个例子(未经IDE验证)。

var zipped = firstIds.Zip(secondIds, (first, second) => new List<long> {first, (long) second});

答案 1 :(得分:-3)

看看SelectMany。它相当强大,应该提供您正在寻找的功能。