C#列表<string>用分隔符string
在C#中有一个函数来快速转换一些收集string和分隔值与分隔符?
例如:
List<string> names
– > string names_together = "John, Anna, Monica"
你可以使用String.Join
。 如果你有一个List<string>
那么你可以先调用ToArray
:
List<string> names = new List<string>() { "John", "Anna", "Monica" }; var result = String.Join(", ", names.ToArray());
在.NET 4中,您不再需要ToArray
,因为String.Join
的重载需要IEnumerable<string>
。
如果你愿意,你也可以用linq来做
var names = new List<string>() { "John", "Anna", "Monica" }; var joinedNames = names.Aggregate((a, b) => a + ", " + b);
尽pipe我更喜欢Quartermeister的答案中的非linq语法,我认为Aggregate
可能会执行较慢(可能更多的string连接操作)。
List<string> targets = new List<string>(); var InboxChecked = true; var BannerChecked = false; var EmailChecked = true; if (InboxChecked) { targets.Add("Inbox"); } if (BannerChecked) { targets.Add("Banner"); } if (EmailChecked) { targets.Add("Email"); } var index = 0; if (targets.Any()) { var aggregate = targets.Aggregate((s1, s2) => { return ++index == targets.Count - 1 ? s1 + " and " + s2 : s1 + ", " + s2; }); // aggregate.Dump(); } // returns -> Inbox and Email