"System"-代码到"System.Linq"-代码
"System"-code to "System.Linq"-code
我是 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;
}
}
我想知道如何将其转换为 "simple" LINQ 变体,以及使用 LINQ 是否会更快(因为我听说过有关 LINQ 的好消息。)。
这里不需要 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
我是 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;
}
}
我想知道如何将其转换为 "simple" LINQ 变体,以及使用 LINQ 是否会更快(因为我听说过有关 LINQ 的好消息。)。
这里不需要 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