Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少新代码行的数量(不使用字符串类方法)?_C# - Fatal编程技术网

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
class
string.Join(“,stringsOne)
也会做同样的事情,它在内部使用
StringBuilder
。或者您可以只编写
Console.WriteLine(“aaa bbb ccc”)以除去这些行并仍然获得相同的结果。但我不认为那是你想要的。
Console.WriteLine(String.Join(" ", new[] { "aaa", "bbb", "ccc" }));