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