从IList<string>或IEnumerable<string>创建以逗号分隔的字符串值列表的最简洁方法是什么? 
 String.Join(...)对string[]操作,因此当IList<string>或IEnumerable<string>无法轻松转换为字符串数组时,使用起来会非常麻烦。 
.NET 4+
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);详细信息和 Pre .Net 4.0 解决方案
使用 LINQ(.NET 3.5)可以非常轻松地将IEnumerable<string>转换为字符串数组: 
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 。当然,你不必使用一个辅助方法: 
// 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());后者虽然有点满口:)
这可能是最简单的方法,并且性能也非常高 - 还有其他问题,关于性能是什么样的,包括(但不限于) 这个 。
从. NET 4.0 开始, string.Join有更多的重载,所以你实际上可以写: 
string joined = string.Join(",", strings);更简单:)
仅供参考,.NET 4.0 版本的string.Join()有一些额外的重载 ,可以使用IEnumerable而不仅仅是数组,包括可以处理任何类型T数组: 
public static string Join(string separator, IEnumerable<string> values)
public static string Join<T>(string separator, IEnumerable<T> values)我能看到的最简单的方法是使用 LINQ Aggregate方法: 
string commaSeparatedList = input.Aggregate((a, x) => a + ", " + x)