如何在c#中将List<char>转换为List<string>?

6
我有一段文本,例如string text = "COMPUTER"
我想将其拆分为字符,并将每个字符保留为字符串。
如果有任何分隔符,我可以使用text.Split(delimiter)
但是没有任何分隔符,我可以通过text.ToCharArray().toList()将其转换为字符数组
然后我得到了List<char>。 但我需要List<string>
那么我该如何将List<char>转换为List<string>呢?
6个回答

16

只需遍历字符集合,将每个字符转换为字符串:

var result = input.ToCharArray().Select(c => c.ToString()).ToList();

或者更短(并且更有效率,因为我们不会在中间创建一个额外的数组):

var result = input.Select(c => c.ToString()).ToList();

2

试试这个

   var result = input.Select(c => c.ToString()).ToList();

2
@Ripple:因为答案在编辑后发生了变化(但仍在最初的“无历史记录”时间窗口内)。原始答案与问题毫不相关。 - knittl
谢谢 @Ripple 和 knittl 的公正,我因匆忙中误解了问题,对此很抱歉。 - varsha
@Ripple:我无法取消点赞,因为编辑没有显示为编辑。只有在进行了(真正的)编辑之后才能删除点赞。 - knittl

1

利用一个事实,即 string 在内部已经非常接近于 char[]

不使用 LINQ 的方法:

List<string> list = new List<string();
for(int i = 0; i < s.Length; i++)
    list.Add(s[i].ToString());

1
尝试以下操作。
string text = "COMPUTER"
var listOfChars = text.Select(x=>new String(new char[]{x})).ToArray()

1
    string bla = "COMPUTER"; //Your String
    List<char> list = bla.ToCharArray().ToList(); //Your char list
    List<string> otherList = new List<string>(); //Your string list
    list.ForEach(c => otherList.Add(c.ToString())); //iterate through char-list convert every char to string and add it to your string list

0

使用这个:

关键字:

charList 是您的字符列表

strList 是您的字符串列表

代码:

List<string> strList = new List<string>();
foreach(char x in charList)
{
    strList.Add(x.ToString());
}

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