【发布时间】:2016-05-27 15:33:07
【问题描述】:
事实上,我对 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;
}
}
我想知道如何将其转换为“简单”的 LINQ 变体,以及使用 LINQ 是否会更快(因为我听说过关于 LINQ 的好消息。)。
【问题讨论】:
-
您能否为
input添加一个示例值,以便我们了解您想要实现的目标? LINQ 并不是专门为首先优化字符串操作/连接而设计的,因此可能还有其他选择。这里的大部分工作似乎都是串联,因此请考虑将StringBuilder用于reStr变量。 -
LINQ 的一部分,您可能想了解一下StringBuilder。
-
@dlatikay 我为 SongDecoder() 添加了第二个查询。这有什么不同吗?
标签: c# linq code-conversion