在C#中如何将字符串列表转换为扁平化的单字符字符串列表?
问题原因
ToCharArray()是string类型的内置方法,不能直接作用在List<string>集合上,所以你的写法不会生效。
实现方案
方案1:LINQ一行实现(推荐)
先引入LINQ命名空间:
using System.Linq;
直接调用SelectMany遍历合并每个字符串的拆分结果:
List<string> result = KeyList.SelectMany(str => str.Select(c => c.ToString())).ToList();
逻辑说明:SelectMany会把每个字符串拆分得到的字符序列铺平合并为一个总序列,c.ToString()负责把char类型转为你需要的string类型,最后调用ToList()生成最终列表。
方案2:传统循环实现
不需要引入额外命名空间,逻辑更直观:
List<string> result = new List<string>(); foreach (string item in KeyList) { foreach (char c in item) { result.Add(c.ToString()); } }
两种方案运行后得到的result就是你要的["A","D","B","K","T"]格式的列表。
内容的提问来源于stack exchange,提问作者Annas
相关产品推荐
相关产品推荐

