7
votes

C # string [] à int []

Y a-t-il un moyen de convertir des matrices de chaîne sur des tableaux d'int afin que d'analyser une chaîne à un int en C #.

int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.


2 commentaires

Linq devrait vous permettre de le faire en une seule ligne. Ou des expressions Lambda.


Avez-vous essayé de rechercher ce site avant de demander?


7 Réponses :


18
votes

Cette requête LINQ devrait le faire:

strArray.Select(s => int.Parse(s)).ToArray()


0 commentaires

8
votes
int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));
Should do just fine. You could modify the lambda to use TryParse if you don't want exceptions.

1 commentaires

Array.convertiLL nécessite définitivement moins de réaffectations que Linqy toarray () . Notez que dans ce cas, vous n'avez même pas besoin de Lambda, vous pouvez passer int32.parse comme deuxième paramètre de ConvertiLL .



3
votes
”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();

0 commentaires

6
votes
int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();

0 commentaires

3
votes

Utilisez ceci:

"123,456".Split(',').Select(s => int.Parse(s)).ToArray()


0 commentaires

3
votes

Je pense, comme ça:

string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();


0 commentaires

2
votes

Voici la méthode d'extension. Ceci est fait sur la chaîne, car vous ne pouvez pas ajouter de fonction statique à une chaîne.

string testValue = "123, 456,789";

int[] testArray = testValue.ToIntArray();


1 commentaires

Très génial, ce que je cherchais. Merci!