Vous ne pouvez pas créer un tableau immédiatement car vous devez connaître le nombre de lignes depuis le début (et cela nécessiterait de lire le fichier csv deux fois).
Vous pouvez stocker des valeurs dans deux List<T>
et ensuite les utiliser ou les convertir en un tableau en utilisant List<T>.ToArray()
Un exemple très simple :
var column1 = new List<string>();
var column2 = new List<string>();
using (var rd = new StreamReader("filename.csv"))
{
while (!rd.EndOfStream)
{
var splits = rd.ReadLine().Split(';');
column1.Add(splits[0]);
column2.Add(splits[1]);
}
}
// print column1
Console.WriteLine("Column 1:");
foreach (var element in column1)
Console.WriteLine(element);
// print column2
Console.WriteLine("Column 2:");
foreach (var element in column2)
Console.WriteLine(element);
N.B.
Veuillez noter qu'il ne s'agit que d'une exemple très simple . Utilisation de string.Split
ne tient pas compte des cas où certains enregistrements contiennent le séparateur ;
à l'intérieur.
Pour une approche plus sûre, envisagez d'utiliser des bibliothèques spécifiques à csv comme CsvHelper sur nuget.
2 votes
@Marc : malheureusement, dans les cultures non anglaises (par exemple, l'italien), lorsque vous enregistrez un fichier excel en CSV, il utilise la méthode suivante
";"
comme séparateur... cela a fait de CSV un non-standard imo :(31 votes
Je lis toujours CSV comme character-separated-values puisque les gens appellent les fichiers CSV même s'ils n'utilisent pas de virgule comme séparateur. Et il y a tellement de dialectes avec des règles de citation ou d'échappement différentes dans la pratique que l'on ne peut pas vraiment parler d'une norme même si en théorie il y a une RFC.
6 votes
Le nom d'extension du fichier CSV devrait maintenant être changé en DSV. Valeurs séparées par des délimiteurs Fichier
2 votes
Pour toutes les réponses qui divisent simplement la chaîne de caractères sur le caractère de délimitation, ce n'est pas la meilleure façon de procéder. Le format CSV comporte d'autres règles qui ne seront pas abordées ici. Il est préférable d'utiliser un analyseur syntaxique tiers. Plus d'informations dotnetcoretutorials.com/2018/08/04/csv-parsing-in-net-core