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);

您应该使用 PascalCase 作为您的属性名称(名称、ID、年龄)。

于 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 回答