Est-il une meilleure façon de répartir cette chaîne à l'aide de LINQ?
J'ai un peu de longitude\latitude coordonnées tassent dans une chaîne que j'aimerais divisé en longitude\latitude paires. Grâce à stackoverflow j'ai été en mesure de venir avec certains linq qui divisera en multidimensionnelle tableau de chaînes. Est-il possible de fractionner la chaîne directement dans un objet qui accepte la longitude la latitude vs un tableau de chaînes ensuite créer l'objet?
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
}
Il est (presque?) jamais une bonne façon de découper une chaîne de caractères à l'aide de linq. Cela dit, le Système.Texte.RegularExpressions est ce que vous voulez
Qu'est-ce que
À l'aide d'une expression régulière pour une telle tâche triviale est exagéré. Si vous savez que le format de votre entrée est constante et qu'il est facile à analyser par le fractionnement de vous doit être à l'aide de split, au lieu d'une regex.
Désolé, quelques données supplémentaires.
Pas un grand fan de RegualrExpressions mais j'apprécie la réponse.
Qu'est-ce que
-0.3354", "London:484"
à la fin de votre chaîne?À l'aide d'une expression régulière pour une telle tâche triviale est exagéré. Si vous savez que le format de votre entrée est constante et qu'il est facile à analyser par le fractionnement de vous doit être à l'aide de split, au lieu d'une regex.
Désolé, quelques données supplémentaires.
Pas un grand fan de RegualrExpressions mais j'apprécie la réponse.
OriginalL'auteur NullReference | 2012-04-09
Vous devez vous connecter pour publier un commentaire.
Vous sont proches. Quelque chose comme ce qui pourrait aider:
Merde. Était en train d'écrire quelque chose de presque identiques. Bravo.
Parfait, merci! Juste oublié le nouveau {} partie.
OriginalL'auteur Mehrdad Afshari
En supposant que vous avez un
Coordinate
classe avec unpublic Coordinate(double x, double y)
constructeur, vous pouvez le faire:ou égale
OriginalL'auteur dtb
Vous pourriez faire ceci:
Ensuite, vous pouvez créer une collection de GeoCoordinate classes ainsi:
Heh...StackOverflow peut être tout à fait la course, ne peut-il pas?
OriginalL'auteur Ethan Brown
Ici est un " peu " de nice extrait montrant:
Vous voulez extraire un code (par exemple, le nombre d'analyse) dans la vraie vie.
Voir en direct sur Ideone.com.
De sortie:
OriginalL'auteur sehe
Est-il une nécessité pour vous d'utiliser LINQ? Vous pouvez tout faire avec la norme de chaîne de fractionnement de la fonctionnalité:
Eh bien, je suppose que c'est subjectif. Cela semble assez simple et propre pour moi.
OriginalL'auteur Adam V
Je pourrais ajouter un peu plus. Grâce à dtb pour le début, upvoted. Si vous cassez votre analyse de la fonction, vous pouvez plus proprement gérer les conditions d'erreur, tels que le mauvais nombre d'éléments de votre tableau, ou des choses qui ne pas analyser à une décimale.
OriginalL'auteur SouthShoreAK