如何最小化新代码行的数量(不使用字符串类方法)?

时间:2016-04-19 05:23:08

标签: c#

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(); 
    } 

5 个答案:

答案 0 :(得分:1)

你可以尝试这个,它是最小化的线:

        var stringsOne = new[] { "aaa", "bbb", "ccc" };
        var sb = new StringBuilder();
        stringsOne.Select(p => p).ToList().ForEach(q => sb.Append(q+" "));
        Console.WriteLine(sb);

没有使用ToString或Substring方法

答案 1 :(得分:1)

通过SelectMany方法选择每个char并将其转换为数组并附加到StringBuilder。

var strings = new StringBuilder();  
        strings.Append((new[] { "aaa", "bbb", "ccc" }).SelectMany(str => (str + " ").ToArray()).Reverse().Skip(1).Reverse().ToArray());  

即使你可以简单地跳过StringBuilder:
    Console.WriteLine(String.Join(“”,new [] {“aaa”,“bbb”,“ccc”}));

答案 2 :(得分:0)

您可以简单地使用:

 var stringsOne = new[] { "aaa", "bbb", "ccc" };
        var sb = new StringBuilder();
stringsOne.ToList().ForEach(q => sb.Append(q + " "));
 Console.WriteLine(sb);

答案 3 :(得分:0)

如果您的目标是输出,则根本不需要使用StringBuilder

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();

答案 4 :(得分:0)

这做同样的工作:

ValidatedMethod

你可以这样做:

var stringsOne = new[] { "aaa", "bbb", "ccc" };

var concat = String.Join(" ", stringsOne);

Console.WriteLine(concat);