从IList<string>或创建以逗号分隔的字符串值列表的最干净方法是什么IEnumerable<string>?
IList<string>
IEnumerable<string>
String.Join(...)在string[]诸如IList<string>或IEnumerable<string>不容易将其转换为字符串数组的类型时,对此类进行操作可能很麻烦。
String.Join(...)
string[]
.NET 4+
IList<string> strings = new List<string>{"1","2","testing"}; string joined = string.Join(",", strings);
细节和Pre .Net 4.0解决方案
IEnumerable<string>可以被转换成一个字符串数组 非常 与LINQ(.NET 3.5)容易:
IEnumerable<string> strings = ...; string[] array = strings.ToArray();
如果需要,编写等效的辅助方法很容易:
public static T[] ToArray(IEnumerable<T> source) { return new List<T>(source).ToArray(); }
然后这样称呼它:
IEnumerable<string> strings = ...; string[] array = Helpers.ToArray(strings);
然后,您可以致电string.Join。当然,你不 具备 使用一个辅助方法:
string.Join
// C# 3 and .NET 3.5 way: string joined = string.Join(",", strings.ToArray()); // C# 2 and .NET 2.0 way: string joined = string.Join(",", new List<string>(strings).ToArray());
后者虽然有点a :)
这很可能是最简单的方法,而且性能也很高- 关于性能到底是什么样,还有其他问题,包括(但不限于)这一问题。
从.NET 4.0开始,中提供了更多的重载string.Join,因此您实际上可以编写:
string joined = string.Join(",", strings);
简单得多:)