我有一个包含多个变量的列表,并希望将数据写入文本文件。
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);
我希望结果显示在类似于上面列表的文本文件中,但是我无法将列表添加到数组中,然后按顺序显示。有什么想法吗?
答案 0 :(得分: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作为您的属性名称(Name,Id,Age)。
答案 1 :(得分: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));