C# 如何减少新代码行的数量(不使用字符串类方法)?
您可以尝试此方法,它使用最小化的行:C# 如何减少新代码行的数量(不使用字符串类方法)?,c#,C#,您可以尝试此方法,它使用最小化的行: private static void Main() { var stringsOne = new[] {"aaa", "bbb", "ccc"}; var sb = new StringBuilder(); foreach (var s in stringsOne) { sb.Append(s + " "); }
private static void Main()
{
var stringsOne = new[] {"aaa", "bbb", "ccc"};
var sb = new StringBuilder();
foreach (var s in stringsOne)
{
sb.Append(s + " ");
}
var concat = sb.ToString();
Console.WriteLine(concat.Substring(0,concat.Length-1));
Console.ReadKey();
}
不使用ToString或Substring方法您只需使用:
var stringsOne = new[] { "aaa", "bbb", "ccc" };
var sb = new StringBuilder();
stringsOne.Select(p => p).ToList().ForEach(q => sb.Append(q+" "));
Console.WriteLine(sb);
通过
SelectMany
方法选择每个字符,并将其转换为数组并附加到StringBuilder
var stringsOne = new[] { "aaa", "bbb", "ccc" };
var sb = new StringBuilder();
stringsOne.ToList().ForEach(q => sb.Append(q + " "));
Console.WriteLine(sb);
甚至您也可以跳过StringBuilder:Console.WriteLine(String.Join(“,new[]){“aaa”,“bbb”,“ccc”}) 如果您的目标是输出,则根本不需要使用
StringBuilder
:
var strings = new StringBuilder();
strings.Append((new[] { "aaa", "bbb", "ccc" }).SelectMany(str => (str + " ").ToArray()).Reverse().Skip(1).Reverse().ToArray());
var stringsOne=new[]{“aaa”、“bbb”、“ccc”};
对于(int i=0;i
这做同样的工作:
var stringsOne = new[] { "aaa", "bbb", "ccc" };
for (int i = 0; i < stringsOne.Length; i++)
Console.Write(i == stringsOne.Length - 1 ? "{0}" : "{0} ", stringsOne[i]);
Console.ReadKey();
你可以这样做:
var stringsOne = new[] { "aaa", "bbb", "ccc" };
var concat = String.Join(" ", stringsOne);
Console.WriteLine(concat);
您能更清楚地了解这个需求吗?最好是进行代码检查,而不是堆栈溢出。也就是说,在使用经过优化的StringBuilder时,即使使用字符串扩展,也没有更好的编写方法。我唯一能看到的是foreach中多余的括号。为什么要求不使用
string
classstring.Join(“,stringsOne)
也会做同样的事情,它在内部使用StringBuilder
。或者您可以只编写Console.WriteLine(“aaa bbb ccc”)代码>以除去这些行并仍然获得相同的结果。但我不认为那是你想要的。
Console.WriteLine(String.Join(" ", new[] { "aaa", "bbb", "ccc" }));