【发布时间】:2011-11-20 20:53:44
【问题描述】:
假设出于调试目的,我想快速将 IEnumerable 的内容转换为单行字符串,其中每个字符串项以逗号分隔。我可以在一个带有 foreach 循环的辅助方法中做到这一点,但这既不有趣也不简短。可以使用linq吗?其他一些简短的方式?
【问题讨论】:
标签: c# string linq collections ienumerable
假设出于调试目的,我想快速将 IEnumerable 的内容转换为单行字符串,其中每个字符串项以逗号分隔。我可以在一个带有 foreach 循环的辅助方法中做到这一点,但这既不有趣也不简短。可以使用linq吗?其他一些简短的方式?
【问题讨论】:
标签: c# string linq collections ienumerable
using System;
using System.Collections.Generic;
using System.Linq;
class C
{
public static void Main()
{
var a = new []{
"First", "Second", "Third"
};
System.Console.Write(string.Join(",", a));
}
}
【讨论】:
string output = String.Join(",", yourEnumerable);
String.Join Method (String, IEnumerable
连接构造的 IEnumerable 集合的成员 输入字符串,在每个成员之间使用指定的分隔符。
【讨论】:
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
【讨论】:
.TrimEnd(',') 来去掉它。
collection.Aggregate((str, obj) => str + "," + obj.ToString());
IEnumerable<string> foo =
var result = string.Join( ",", foo );
【讨论】:
// In this case we are using a list. You can also use an array etc..
List<string> items = new List<string>() { "WA01", "WA02", "WA03", "WA04", "WA01" };
// Now let us join them all together:
string commaSeparatedString = String.Join(", ", items);
// This is the expected result: "WA01, WA02, WA03, WA04, WA01"
Console.WriteLine(commaSeparatedString);
Console.ReadLine();
【讨论】:
将大数组的字符串连接成一个字符串,不要直接使用+,使用StringBuilder一一迭代,或者String.Join一键搞定。
【讨论】: