いくつかのcsvファイル作成を行うメソッドを作成しました。テスト目的のためにファイルシステムにファイルを保存していましたが、このようにしたくありません。CsvファイルをC#で返すメソッドを作成します。
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());
}
csvファイルを返すだけではなく、ボイド方法を持つための方法があります:
これは私のコードはありますか?
'' STRING'と '(csv.ToStringを返す)とvoid'を置き換えます;' – fubo
@fuboこれは機能しますか?誰かがこのメソッドを呼び出すと、実際には物理的に存在するCSVファイルを返す必要があるので... –
あなたは何を返そうと思いますか?ファイルの内容は?ファイルへのポインタ? –