如何使用一行代码在 C# 中连接两个数组

Posted

技术标签:

【中文标题】如何使用一行代码在 C# 中连接两个数组【英文标题】:How to join two arrays in C# using a single line of code 【发布时间】:2021-12-28 04:03:49 【问题描述】:

我有 c# 代码:

string[] names = new []  "a", "b", "c" ;
int[] vals = new[]  5, 10, 15 ;
r = "";
for( int i = 0; i < names.Length; i++ )
r += names[i] + ": " + vals[i] + " ";

在python中我可以写oneliner

r = " ".join( [ names[i] + ":" + str(vals[i]) for i in range(len(names)) ] )

我如何在 C# 中做到这一点?

【问题讨论】:

我建议编辑你的标题,顺便说一句——我怀疑它的意思是“结构”而不是“os 结构”,但即使这样,结构的相关性也不清楚...... 不是数组,而是两个数组。固定的。谢谢 【参考方案1】:

我会对 Python 代码采取稍微不同的方法 - 我会使用 LINQ "zip" operator 来生成要连接在一起的字符串序列,然后使用 string.Join 来连接它们:

string result = string.Join(" ", names.Zip(values, (n, v) => $"n:v");

所以在其中:

names.Zip(values, &lt;something&gt;) 部分基于对来自namesvalues 的每对值应用“某物”来生成一系列值。 (n, v) =&gt; $"n:v" 部分接受名称和值,并将它们格式化为名称:值。 string.Join(" ", &lt;sequence&gt;) 部分将序列元素与每对值之间的空格连接在一起。

请注意,与原始 C# 代码不同,此不会以尾随空格结尾。

【讨论】:

以上是关于如何使用一行代码在 C# 中连接两个数组的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 C# 中的一行中编辑多个数组值吗

如何将这些变量写入 C# 中的一行代码?

如何在 C# 中为类名起别名,而不必向使用该类的每个文件添加一行代码?

c#用一行c#代码播放声音

c#使用FluentFtp实现一行代码实现ftp上传下载等

在excel表中插入一行(或一列)后vba代码如何自动修改?