是否有一种简单的LINQ表达式,可以使用分隔符将我整个List<string>
集合中的所有项连接成一个string
?
如果集合是自定义对象而不是string
呢?想象一下我需要在object.Name
上进行连接。
是否有一种简单的LINQ表达式,可以使用分隔符将我整个List<string>
集合中的所有项连接成一个string
?
如果集合是自定义对象而不是string
呢?想象一下我需要在object.Name
上进行连接。
将 String.Join
放入扩展方法中。这是我使用的版本,比 Jordaos 版本更简洁。
""
。而 Aggregate
会抛出异常。Aggregate
更具优势。String.Join()
更易于阅读。用法
var myStrings = new List<string>() { "a", "b", "c" };
var joinedStrings = myStrings.Join(","); // "a,b,c"
Extensionmethods类
public static class ExtensionMethods
{
public static string Join(this IEnumerable<string> texts, string separator)
{
return String.Join(separator, texts);
}
}
Aggregate
将字符串连接成一个由特定字符分隔的单一字符串,但如果集合为空,则会抛出无效操作异常。Aggregate
函数。var seed = string.Empty;
var seperator = ",";
var cars = new List<string>() { "Ford", "McLaren Senna", "Aston Martin Vanquish"};
var carAggregate = cars.Aggregate(seed,
(partialPhrase, word) => $"{partialPhrase}{seperator}{word}").TrimStart(',');
string.Join
,即使传递一个空集合也没有问题。var seperator = ",";
var cars = new List<string>() { "Ford", "McLaren Senna", "Aston Martin Vanquish"};
var carJoin = string.Join(seperator, cars);