" System" -code to" System.Linq" -code

时间:2016-05-27 15:33:08

标签: c# linq code-conversion

我对LINQ非常陌生,事实上......我很新,我只是发现点之前的所有内容都是通过被调用的方法给出的。

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(SongDecoder("WUBWUBABCWUB"));
        Console.WriteLine(SongDecoder("RWUBWUBWUBLWUB"));
    }

    public static string SongDecoder(string input)
    {
      string[] s = input.Split(new string[] { "WUB" }, StringSplitOptions.RemoveEmptyEntries);

      string reStr = "";
      for (int i = 0; i < s.Length; i++)
        if(i == s.Length - 1)
          reStr += s[i];
        else
          reStr += s[i] + " ";

      return reStr;
    }
}

我想知道如何将其转换为简单的&#34; LINQ变体,如果使用LINQ会更快(因为我听说LINQ很棒很快。)。

1 个答案:

答案 0 :(得分:4)

此处不需要LINQ

var reStr =  String.Join(" ", 
               input.Split(new string[] {"WUB"}, StringSplitOptions.RemoveEmptyEntries));

抱歉:(虽然LINQ非常有用,我建议你阅读一下。

好的,我承认,如果你真的想要使用LINQ,总会有Aggregate

var retStr = input.Split(new string[] {"WUB"}, StringSplitOptions.RemoveEmptyEntries))
                  .Aggregate ( (a,b) => a + " " + b);

在此处阅读更多内容:LINQ Aggregate algorithm explained