一尘不染

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

c#

IList<string>或创建以逗号分隔的字符串值列表的最干净方法是什么IEnumerable<string>

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


阅读 253

收藏
2020-05-19

共1个答案

一尘不染

.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。当然,你不 具备 使用一个辅助方法:

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

简单得多:)

2020-05-19