gpt4 book ai didi

c# - 如何在 C# 中每 3 项用逗号将数组连接到字符串

转载 作者:太空狗 更新时间:2023-10-29 20:46:00 29 4
gpt4 key购买 nike

假设我有一个数组。

string[] temp = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };

我想像下面那样每 3 个项目用逗号连接它们。

string[] temp2 = { "a,b,c", "d,e,f", "g,h,i", "j" };

我知道我可以用

string temp3 = string.Join(",", temp);

但这给了我结果

"a,b,c,d,e,f,g,h,i,j"

有没有人有想法?

最佳答案

一种快速简便的方法,将您的项目分成三组:

string[] temp = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };

string[] temp2 = temp.Select((item, index) => new
{
Char = item,
Index = index
})
.GroupBy(i => i.Index / 3, i => i.Char)
.Select(grp => string.Join(",", grp))
.ToArray();

已更新以使用 .GroupBy 的重载这允许您指定一个元素选择器,因为我认为这是一种更简洁的方法。成立于 @Jamiec's answer.

这里发生了什么:

  1. 我们正在投影 temp 的每个元素进入一个新元素——一个带有 Char 的匿名对象和 Index属性。
  2. 然后我们根据项目索引和 3 之间的整数除法结果对生成的 Enumerable 进行分组。第二个参数为 .GroupBy ,我们指定我们希望组中的每个项目都是 Char匿名对象的属性。
  3. 然后,我们调用.Select再次投影分组元素。这次我们的投影函数需要调用string.Join ,将每组字符串传递给该方法。
  4. 此时我们有一个 IEnumerable<string>这看起来就像我们想要的那样,所以只需调用 ToArray 即可从我们的 Enumerable 创建一个数组。

关于c# - 如何在 C# 中每 3 项用逗号将数组连接到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253201/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com