List<string> 的 ToCharArray 等效方法

7

如何将字符串拆分成列表?我正在寻找与ToCharArray相当的方法,但是它可以将其转换为列表。

string data = "ABCDEFGHIJ1fFJKAL";
List<string> datalist = new List<string>();
datalist.AddRange(new List<string>{"A","B","C"});

如何将数据转换为可被AddRange接受的格式?

将字符串转换为由单个字符字符串组成的列表? str.Select(c => c.ToString()).ToList() - Jeff Mercado
4个回答

16
如果您想要一个字符列表,那么应使用 List<char> 而非 List<string>,这样您就无需对字符串进行任何处理。方法 AddRange 接受一个 IEnumerable<char> 参数,而 String 类正好实现了 IEnumerable<char> 接口。
string data = "ABCDEFGHIJ1fFJKAL";
List<char> datalist = new List<char>();
datalist.AddRange(data);

如果你想要一个 List<string> 来存储字符,那么你需要将每个字符转换为字符串:

string data = "ABCDEFGHIJ1fFJKAL";
List<string> datalist = new List<string>();
datalist.AddRange(data.Select(c => c.ToString()));

5

由于新列表实例的初始化接受一个集合,其元素将被复制到新列表中,因此Guffa的答案可以简化为:

string data = "ABCDEFGHIJ1fFJKAL";
List<char> datalist = new List<char>(data);

同时:

string data = "ABCDEFGHIJ1fFJKAL";
List<string> datalist = new List<string>(data.Select(c => c.ToString()));

1
如果你想要一个 List<char> 类型的结果,可以使用 str.ToList() 方法。

0
这是一种方法
string data = "ABCDEFGHIJ1fFJKAL";
List<string> datalist = new List<string>();
datalist.AddRange(data.Select (d => d.ToString()));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接