小编典典

从 IList 创建一个逗号分隔的列表或 IEnumerable

all

IList<string>从or创建逗号分隔的字符串值列表的最简洁方法是什么IEnumerable<string>

String.Join(...)``string[]当诸如IList<string>IEnumerable<string>不能轻易转换为字符串数组之类的类型时,对
a 进行操作可能会很麻烦。


阅读 109

收藏
2022-02-28

共1个答案

小编典典

.NET 4+

IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);

.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. 当然,您不必 使用 辅助方法:

// 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);

简单得多:)

2022-02-28