Ich bin LINQ unglaublich neu, in der Tat ... Ich bin so neu, ich habe gerade herausgefunden, dass alles vor dem Punkt durch die aufgerufene Methode übergeben wird."System" -Code zu "System.Linq" -Code
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;
}
}
Ich frage mich, wie ich dies auf eine „einfache“ LINQ Variante umwandeln kann, und wenn es mit LINQ schneller sein würde (wie ich große und schnelle Dinge über LINQ gehört.). hier
könnten Sie einen sample-Wert für 'input' hinzufügen, damit wir eine Vorstellung davon bekommen, was Sie erreichen möchten? LINQ ist nicht etwas, das speziell dafür entwickelt wurde, die Manipulation/Verkettung von Strings an erster Stelle zu optimieren, daher könnte es andere Optionen geben. Der Großteil der Arbeit scheint hier eine Verkettung zu sein, daher sollten Sie einen 'StringBuilder' für die' reStr'-Variable verwenden. – dlatikay
Ein Teil von LINQ, möglicherweise möchten Sie über [StringBuilder] (https://msdn.microsoft.com/en-us/library/system.text.stringbuilder (v = vs.110) .aspx) lesen. – aloisdg
@dlatikay Ich habe eine zweite Abfrage für SongDecoder() hinzugefügt. Ist das anders? – sxbrentxs