如何将列表的内容打印到文本文件中

本文关键字:打印 文本 文件 列表 | 更新日期: 2023-09-27 18:37:06

我有餐厅数据,我正在尝试分析谁访问了特定的餐厅X。 数据具有以下结构:

public class RestaurantXPatrons
{
    public String PatronName { get; set;}
    public List <strings> DateofVisits = new List <strings>();
}

我创建了一个名为 lstX 的 RestaurantXPatrons 列表,我想将 lstX 输出到制表符分隔的文本文件(以便稍后在 Excel 中查看)。 所以这是我的输出代码:

var output = lstX.Select ( x => x.PatronName + "'t" + x.DateofVisits );
string filepath = @"C:'data.txt";
System.IO.File.WriteAllLines(filepath, output);

当我在Excel或记事本中查看结果时,我看到"System.Collections.Generic.List'1[System.String]",其中应该有餐厅 X 的每位顾客的访问日期列表的内容。 我的问题是,如何将列表的内容放入我的输出中?

如何将列表的内容打印到文本文件中

您需要

执行类似x.DateOfVisits.FirstOrDefault()的操作(以获取第一个实例)或将列表展平为字符串,例如:String.Join("; ", x.DateOfVisits)

或者,如果您想执行以下操作:

Paul    01/01/2013
Paul    01/02/2013
Sally   01/01/2013

你可以做

from x in listX
group x by new { x.PatronName, x.DateOfVisit } into g
select new String(g.Key.PatronName + "'t" + g.Key.DateOfVisit)

。没有我可以测试的东西,所以这一切都是"盲目"完成的 - 希望能让你走上正轨。

您需要

遍历集合(输出变量),然后将它们写入StringBuilder,或者使用StreamWriter对象上的WriteLine将它们直接写入磁盘。

将鼠标悬停在 var 变量上时,您将看到它是 Select 方法(LINQ 扩展方法)返回的一种集合类型。 您需要遍历它并逐行编写它。