【问题标题】:How to join two arrays in C# using a single line of code如何使用一行代码在 C# 中连接两个数组
【发布时间】: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 结构”,但即使这样,结构的相关性也不清楚......
  • 不是数组,而是两个数组。固定的。谢谢

标签: c# linq


【解决方案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# 代码不同,此不会以尾随空格结尾。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 2010-12-14
    • 2015-04-23
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2019-06-07
    相关资源
    最近更新 更多