如何使用一行代码在 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, <something>)
部分基于对来自names
和values
的每对值应用“某物”来生成一系列值。
(n, v) => $"n:v"
部分接受名称和值,并将它们格式化为名称:值。
string.Join(" ", <sequence>)
部分将序列元素与每对值之间的空格连接在一起。
请注意,与原始 C# 代码不同,此不会以尾随空格结尾。
【讨论】:
以上是关于如何使用一行代码在 C# 中连接两个数组的主要内容,如果未能解决你的问题,请参考以下文章