Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中两个数组的不同连接方式#_C#_Asp.net Mvc_Linq - Fatal编程技术网

C# c语言中两个数组的不同连接方式#

C# c语言中两个数组的不同连接方式#,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有两个列表从视图发布到控制器,例如 int[] blablaIds = { 13, 377, 1002 }; int[] secondBlaBlaIds = { 7, 18, 126 }; 出于某种原因,我想明确地将它们组合为 int[] combinedIds = { { 7, 13 }, {18, 377}, {126, 1002} } 使用LINQ可以吗?看看。它相当强大,应该能提供您想要的功能。没有长或int的列表,您必须选择一个,然后将另一个列表转换为正确的数据类型。一旦它们是相

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

int[] blablaIds = { 13, 377, 1002 };
int[] secondBlaBlaIds = { 7, 18, 126 };
出于某种原因,我想明确地将它们组合为

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

使用LINQ可以吗?

看看。它相当强大,应该能提供您想要的功能。

没有长或int的列表,您必须选择一个,然后将另一个列表转换为正确的数据类型。一旦它们是相同的数据类型,您就可以很容易地在这两个列表中找到它们

longIds.Concat(intIds.Cast<long>());
longIds.Concat(intIds.Cast());
正如Jon Skeet在评论中指出的,你的问题以目前的形式难以回答。如果您希望创建第一个和第二个项目的成对列表,可以尝试使用.Zip。如果希望int和long在同一个集合中共存,您仍然需要执行一些强制转换。下面是一个示例(未经IDE验证)

var zipped=firstIds.Zip(secondIds,(first,second)=>新列表{first,(long)second});

您以一种非常令人困惑的方式表达了这一点,在第一部分中用方括号显示索引,然后在第二部分中用方括号显示值。为什么要在第一部分中使用索引,在第二部分中使用方括号呢?例如,你所说的
[7][13]
是什么意思也不清楚。那是两个数字。。。您希望如何将它们组合成单个元素?@maccettura:Where's get“with the expected output
z={7,13,18,377,126,1002}
来自何处?数组中有6个元素-OP有3个未指定的元素:
{[7][13],[18][377],[126][1002}
(注意两个逗号,而不是五个。)扮演侦探是一回事——编辑问题,假设你知道OP在他们非常不清楚时的意思,这对他们没有帮助。不幸的是,OP似乎已经决定放弃这个问题(在最后一刻钟内没有回应),所以我们可能永远也不知道。@user3055125当你说“合并他们”时“你是说把它们加在一起?让它们成为一个键值对?@user3055125:那么每一对都会变成一个新数组?这将不是一个
long[]
int[]
那么-它将是一个
long[][]
int[][]
。请注意,如果你听从我的建议,并将此作为一个例子来展示,那么英语部分就不重要了。。。但是
[x][y]
不是数组在C#中的表示方式。如果您编写了
{7,13},{18,377},{126,1002}
,它会更清晰,尽管返回类型不起作用。但这可能根本不是你的意思。你完全不清楚这里应该如何使用
SelectMany
,特别是因为它只处理单个输入序列。这个问题从一开始就不清楚,但给出一个不清楚的答案并没有帮助,这一点很好。Jon Skeet的投票结果肯定会是我这一天的最低点。我不认为这是OP想要的连接方式——诚然,他们不是很清楚,但我不认为这是OP想要的。是的,我同意,现在看来,他可能想要一个基于Zip的操作,因为输出似乎将第一个元素与第二个元素配对……我也这么怀疑,尽管在OP澄清其输出之前,很难提供真正的答案:(首先,很抱歉给您带来不便。我不认为我的问题会引起这么多的混乱。谢谢您的回答。您的提议对我来说非常合理。我会尝试找出答案。这并不是因为它回答了OP的问题,而是,您不能使用元组列表来保留类型吗。
var zipped = firstIds.Zip(secondIds, (first, second) => new List<long> {first, (long) second});