Gibt es eine bessere Möglichkeit, diese Zeichenfolge mit LINQ zu teilen?

8

Ich habe einige Längen- und Breitengradkoordinaten, die in einer Saite zusammengebündelt sind, die ich in Längen- / Breitengrad-Paare aufteilen möchte. Dank stackoverflow konnte ich eine Linq erstellen, die es in ein mehrdimensionales String-Array aufteilen wird. Gibt es eine Möglichkeit, die Zeichenfolge direkt in ein Objekt aufzuteilen, das die geografische Breite entgegen einem String-Array akzeptiert, und dann das Objekt zu erstellen?

%Vor%     
NullReference 09.04.2012, 21:51
quelle

6 Antworten

20

Sie sind nah dran. So etwas könnte helfen:

%Vor%     
Mehrdad Afshari 09.04.2012, 21:54
quelle
6

Angenommen, Sie haben eine Klasse Coordinate mit einem Konstruktor public Coordinate(double x, double y) , können Sie Folgendes tun:

%Vor%

oder gleich

%Vor%     
dtb 09.04.2012 21:55
quelle
3

Sie könnten dies tun:

%Vor%

Dann können Sie eine Sammlung von GeoCoordinate-Klassen erstellen:

%Vor%     
Ethan Brown 09.04.2012 22:01
quelle
3

Hier ist ein 'etwas' schöner Ausschnitt, der zeigt:

  • vorkompilierte regexen
  • LINQ zur anonymen Typ-Projektion
  • Culture-aware ( correct ) Parsing und Drucken von Zahlen

Sie möchten bestimmten Code (z. B. das Zahlen-Parsing) im echten Leben extrahieren.

Sehen Sie live auf Ideone.com .

%Vor%

Ausgabe:

%Vor%     
sehe 09.04.2012 22:04
quelle
2

Ist es eine Notwendigkeit, dass Sie LINQ verwenden? Sie können alles mit der standardmäßigen String-Splitting-Funktionalität tun:

%Vor%     
Adam V 09.04.2012 21:55
quelle
1

Ich könnte ein bisschen mehr hinzufügen. Danke an dtb für den Start, upvoted. Wenn Sie Ihre Analysefunktion nicht ausführen, können Sie Fehlerbedingungen, wie eine falsche Anzahl von Elementen in Ihrem Array oder Dinge, die nicht zu einer Dezimalzahl analysieren, sauberer behandeln.

%Vor%     
SouthShoreAK 09.04.2012 22:00
quelle

Tags und Links