1

複数の変数を含むリストがあり、テキストファイルへの書き込みを配列に追加したいと思います。

class DataFields
{
     public string name{get;set;}
     public int id{get;set;}
     public int age{get;set;}
}

List<DataFields> dfList; 

次のようになります

Adam 1234 23
Pete 3841 15
Scot 8435 30

DataFields[] result = dfList.ToArray();
File.WriteAllLines(@"C:\File\TextFile.txt", result);

上記のリストと同様のテキストファイルに結果を表示したいのですが、リストを配列に追加してからこの順序で表示するのに問題があります。何か案は?

4

3 に答える 3

8

File.WriteAllLines文字列のコレクションが必要です。LINQ を使用して生成できます。

List<DataFields> dfList = new List<DataFields>();
// populate dfList here

var formattedData = 
     dfList
        .OrderBy(df => df.Name)
        .Select(df => string.Format("{0} {1} {2}", df.Name, df.Id, df.Age));

File.WriteAllLines(@"C:\File\TextFile.txt", formattedData);

プロパティ名 (Name、Id、Age) には PascalCase を使用する必要があります。

于 2012-09-18T20:39:19.357 に答える
3
var result = dfList.Select(df => String.Format("{0}\t{1}\t{2}", df.name, df.id, df.age);
于 2012-09-18T20:39:47.340 に答える
0

あなたもこのようなことをすることができます..

List<DataFields> dfList = new List<DataFields>();
    // populate dfList here
    StreamWriter sw = new StreamWriter(@"C:\File\TextFile.txt");

            foreach (DataFields df in dfList)
            {
                sw.WriteLine(df.id+"\t"+df.name+"\t"+df.age);
            }

            sw.Close();

または、より効率的な List の foreach を使用するだけです。

dfList.ForEach(df=> sw.WriteLine(df.id + "\t" + df.name + "\t" + df.age));
于 2012-09-18T21:07:57.243 に答える