我有餐馆数据,我正在尝试分析谁访问了特定的餐厅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的每个赞助人的DateofVisits列表的内容。我的问题是,如何将列表的内容输入到我的输出中?
答案 0 :(得分:3)
您需要执行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)
...没有任何我可以测试的东西,所以这一切都是“盲目”完成的 - 希望能让你走上正轨。
答案 1 :(得分:-1)
您需要遍历集合(输出变量),然后将它们写入StringBuilder,或者使用StreamWriter对象上的WriteLine将它们直接写入磁盘。
当您将鼠标悬停在var变量上时,您将看到它是Select方法(LINQ扩展方法)返回的集合类型。你需要迭代它并逐行编写。