Ich habe eine Methode erstellt, die eine CSV-Dateierstellung durchführt. Zu Testzwecken habe ich Datei im Dateisystem gespeichert, aber ich möchte das nicht so machen.Erstellen Sie eine Methode, die CSV-Datei in C zurückgibt.
Dies ist mein Code:
void ICreateNewCsv.CreateCsvForIndividuals(List<FormattedPerson> formattedPersons)
{
//var CsvFilePath = "C:\\temp\\individuals.csv";
var csv = new StringBuilder();
var toExclude = new HashSet<string>
{
"ID",
"SubSystemID",
"System",
"Component"
};
var props = typeof (FormattedPerson).GetProperties(BindingFlags.Public | BindingFlags.Instance).
Where(property => !toExclude.Contains(property.Name));
var header = string.Join(", ", props.Select(p => p.Name.ToString()).ToArray());
csv.AppendLine(header);
for (var i = 0; i < formattedPersons.Count; i++)
{
var personTexts = formattedPersons
.Select(p => string.Join(",", p.Surname, p.FirstName, p.MiddleName, p.DateOfBirth,
p.NationalID, p.Gender, p.Address1, p.Address2, p.Address3,
p.City, p.Country, p.PostalCode, p.UniqueID));
var joined = string.Join(Environment.NewLine, personTexts);
csv.AppendLine(joined);
}
//File.AppendAllText(CsvFilePath, csv.ToString());
}
Gibt es eine Möglichkeit CSV-Datei zurückzukehren, anstatt nur void-Methode zu haben?
ersetzen 'void' mit' string' und 'Rückkehr csv.ToString();' – fubo
@fubo Wird das funktionieren? Da ich wirklich physisch vorhandene csv-Datei zurückgeben muss, wenn jemand diese Methode aufruft ... –
Nun, was möchtest du zurückgeben? Der Inhalt der Datei? Ein Zeiger auf eine Datei? –