Gibt es einen besseren Weg, um split dieses Strings mit LINQ?

Habe ich einige Längen - \Breitengrad-Koordinaten gebündelt in einer Zeichenfolge, die ich möchte, aufgeteilt in die Länge\Breite Paaren. Dank stackoverflow habe ich in der Lage zu kommen mit dem einige linq, wird es aufgeteilt in einen mehrdimensionalen string-array. Gibt es eine Möglichkeit, um split den string direkt in ein Objekt, an dem der Längengrad Breitengrad vs ein string-array, dann das Objekt erstellen?

string segment = "51.54398, -0.27585;51.55175, -0.29631;51.56233, -0.30369;51.57035, -0.30856;51.58157, -0.31672;51.59233, -0.3354"

string[][] array = segment.Split(';').Select(s => s.Split(',')).ToArray();
foreach (string[] pair in array)
{
//create object here
}
  • Es ist (fast?) nie ein guter Weg, um split einen string unter Verwendung von linq. Das heißt, System.Text.RegularExpressions ist, was Sie wollen
  • Was ist das -0.3354", "London:484" am Ende der Zeichenfolge?
  • Mit einem regulären Ausdruck für eine so triviale Aufgabe ist übertrieben. Wenn Sie wissen, dass das format Ihrer Eingabe ist konstant und es ist leicht zu analysieren, durch die Spaltung, Sie sollten mit split anstelle einer regex.
  • Sorry, einige zusätzliche Daten.
  • Nicht ein großer fan von RegualrExpressions, aber ich Schätze, die Antwort.
  • Hinzugefügt eine Antwort mit demo. Finden Sie es live auf IdeOne.com
  • Sie wissen, was Sie sagen, über reguläre Ausdrücke... jetzt hast du zwei Probleme.
  • Meinungen sind unterschiedlich. Ich verstehe nicht die Notwendigkeit, verbringen zwei Kommentare, die im Grunde wiederholen Sie Ihre anzeigen. Natürlich, das Parsen mit regex tut Eingaben zu prüfen darüber hinaus, was Spaltung bedeutet. Lassen Sie die OP entscheiden. Edit Beachten Sie auch, wie meine Antwort scheint zu sein, die einzige, die sich sorgen über die Zahl Parsen, nicht vorausgesetzt, US-Kultur, z.B.
  • Es ist nicht eine Meinung, sondern eine Tatsache. Wenn Sie wissen, dass Sie zwei Telefonnummern auf eine bekannte position in einem string, dann sind Sie unnötig Dinge komplizieren mit einem regulären Ausdruck. Ich verstehe nicht, Ihre Kultur-argument double.Parse zu berücksichtigen, dass just fine.
  • Ok, dann, übersetzt, in Ihrem jargon: "Tatsachen variieren". Was auch immer 🙂 double.Parse könnte möglich sein über die Dinge, aber niemand Tat
  • Dieser reguläre Ausdruck wird der string in Paare (?<pair>(?<lat>[\d\.-]*), (?<lng>[\d\.-]*)). Ich weiß es nicht .NET regelmäßige Ausdrücke gut genug, um die Gruppen, obwohl. 🙂
  • Tatsachen ändern sich nicht wirklich, und danke für den Beweis meiner Sicht für mich Jan. Lokalisierung kann es nicht sein, eine Voraussetzung für dieses Projekt. Nicht jedes Stück software ausführen muss, um auf einem nicht US-Englisch.

Schreibe einen Kommentar