【发布时间】:2020-02-19 18:45:40
【问题描述】:
我正在使用 C# 使用列表解决 Coderbyte 上的编码挑战。我有想要的结果,但需要将其作为字符串返回。
我想知道如何将我的字符列表转换为字符串。 提前谢谢你。
这是我的代码:
string s = "I love dogs";
int i, j = 0;
List<char> array1 = new List<char>();
List<char> array2 = new List<char>();
for (i = 0; i < s.Length; i++)
{
if (s.Length == j)
break;
if (Char.IsLetter(s[i]))
{
array1.Add(s[i]);
}
else
{
for (j = i; j < s.Length; j++)
{
if (Char.IsLetter(s[j]))
{
array2.Add(s[i]);
}
if (!Char.IsLetter(s[j]) || j == s.Length - 1)
{
if (array1.Count >= array2.Count)
{
array2.Clear();
}
else
{
array1.Clear();
array1.AddRange(array2);
array2.Clear();
}
}
}
}
} // How to convert array1 into String ?
【问题讨论】:
-
string result = new string(array1.ToArray()); -
虽然您可以将它们保留为列表,但我建议使用
StringBuilder而不是List<char>。据我所知,你对列表所做的一切,你都可以用StringBuilder来代替。然后在最后打电话给ToString。 -
@René Vogt 非常感谢您!
-
@Jon Skeet 下次会考虑 StringBuilder :)!
-
有什么理由不改变现在使用它?它专为此类任务而设计。除非这真的是扔掉的代码,否则我会说使用 StringBuilder 会更加地道。