web-dev-qa-db-fra.com

Quel est le moyen le plus simple de convertir une chaîne séparée par des virgules en int []?

J'ai donc une chaîne séparée par des virgules comme 1,5,7, alors quelle est la manière la plus simple et native de convertir ce string en int[]? Je peux écrire ma propre fonction de partage, mais il y a un intérêt à le faire de la manière la plus native. Merci d'avance les gars!

32
kseen
string s = "1,5,7";
int[] nums = Array.ConvertAll(s.Split(','), int.Parse);

ou, une version LINQ-y:

int[] nums = s.Split(',').Select(int.Parse).ToArray();

Mais le premier devrait être un peu plus rapide.

80
Ben Voigt
string numbers = "1,5,7";
string[] pieces = numbers.Split(new string[] { "," },
                                  StringSplitOptions.None);

int[] array2 = new int[pieces.length];

for(int i=0; i<pieces.length; i++)
    array2[i] = Convert.ToInt32(pieces[i]);
7
MD Sayem Ahmed

Voici.

string numbers = "1,5,7";
List<int> numlist = new List<int>();

foreach (string number in numbers.Split(','))
    numlist.Add(Int32.Parse(number));
6
Brian Graham