2016-12-15 4 views
0

J'ai une liste d'un objet Type de personne. J'ai besoin de le convertir en chaîne csv afin de pouvoir continuer à travailler. Ce que je l'ai fait jusqu'à présent est:Convertir une liste de tableaux d'objets en chaîne CSV en utilisant C#

overrided méthode toString comme ci-dessous:

public override string ToString() 
    { 
    return String.Format("{0}, {1}, {2}, {3}", userame, firstname, lastname, marks); 
    } 

exemple d'implémentation:

string csv = String.Join(",", detailList.Select(x => x.ToString()).ToArray()); 
System.Diagnostics.Debug.WriteLine("csv " + csv); 

Ce n'est pas le format valide, je sais. Quelqu'un peut-il m'aider à convertir à un bon CSV fromat?

J'ai besoin de ce fichier csv pour l'utiliser dans l'API Salesforce Bulk.

UPDT: Ma sortie désirée est -

FirstName, LastName, Nom d'utilisateur

"Tom", "Jones", "Tom1234"

"Jack", "Smith", "Jack123"

Merci

+0

Une raison spécifique pour remplacer la méthode Tostring()? – jignesh

+0

Sans passer outre, il ne retournera pas la liste dans un format lisible. – Neha

+0

Essayez d'écrire un exemple de résultat souhaité. – Michael

Répondre

0
String.Join(",", detailList.Select(x => x.ToString()).ToArray()); 
0

Voir un exemple de travail: https://dotnetfiddle.net/KJVYqC

public class CsvFormatter 
{ 
    public string Format(IEnumerable<Person> persons) 
    { 
     var sb = new StringBuilder(); 

     sb.AppendLine("FirstName,LastName,Username"); 

     foreach(var person in persons) 
     { 
      sb.Append(person.Firstname + ","); 
      sb.Append(person.Lastname + ","); 
      sb.Append(person.Username); 

      sb.AppendLine(); 
     } 

     return sb.ToString().Trim(); 
    } 
}