0

レストラン データがあり、特定のレストラン 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 リストの内容があるはずです。私の質問は、どのようにリストの内容を出力に取得しますか?

4

2 に答える 2

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)

...テストできるものがないため、これはすべて「盲目的」に行われます-うまくいけば、正しい軌道に乗るでしょう。

于 2013-10-27T22:18:58.740 に答える
-1

コレクション (出力変数) を反復処理してから、おそらく StringBuilder に書き込むか、StreamWriter オブジェクトで WriteLine を使用してディスクに直接書き込む必要があります。

var 変数にカーソルを合わせると、Select メソッド (LINQ 拡張メソッド) によって返されるコレクションの型であることがわかります。それを繰り返し処理し、1 行ずつ記述する必要があります。

于 2013-10-27T22:18:38.370 に答える