2017-08-25 5 views

Répondre

1

List<T> est pas thread-safe, C'est pourquoi Parallel.ForEach n'est pas facile à se marier List<T>. Essayez d'utiliser Linq et sa version parallèle PLinq, laissez .Net faire le travail pour vous; quelque chose comme ceci:

var list = dt 
    .AsEnumerable() 
    .AsParallel() 
    .AsOrdered() // if you want to preserve rows order 
    .Select(drow => string.Join(",", drow[1], drow[5], drow[11], ExtraData(drow[5]))) 
    .ToList(); 

Si vous souhaitez enregistrer le list en tant que fichier utilisation File classe:

using System.IO; 

... 

string fileName = @"C:\MyFile.csv"; 

File.WriteAllLines(fileName, list); 

Dans l'exemple de jouet ci-dessus, je l'ai supposé que nous voulons avoir CSV base sur les 2ème, 4ème et 12ème colonnes enrichies par ExtraData(drow[5]) et toutes les valeurs des colonnes ne contiennent pas " et , caractères

+0

Salut, Cela fonctionne parfaitement, Cependant, puis-je savoir comment je vais convertir en CSV, je suis très nouveau à C#. –

+0

@Gouri Mahapatra: voulez-vous dire, comment pouvez-vous écrire la liste en tant que fichier CSV * *? –

+0

oui, liste ayant déjà un enregistrement séparé par des virgules, je veux convertir dans cette liste en fichier csv. Merci –