2012-03-05 10 views
5

IQueryable式からDictionary of Dictionaryを返す方法が必要です。一般的に、Dictionary of IQueryable辞書

Dictionary<int, Dictionary<DateTime, string>> 

は最初に、私はもちろんのToDictionary()を見たが、他の後に2つの1を宣言するための方法を見つけることができませんでした。

次に、私はToLookup()でloookedと私は、私の二次辞書(DateTime.Tostring()+他の文字列)されている文字列を持つILookupでこれを運ぶ方法があります...あなたは従っていますか? :) しかし、私はILookupソリューションは、本当に快適見つけることはありません(私はデータを受信したとき、文字列に日付を解析し、 - >これまでの文字列... beuark)

その

return this.ttdc.Trackers.GroupBy(t => new { TrackerTaskId = t.TrackerTaskID, DateGenerated = t.TrackerDateGenerated }) 
        .Select(t => new { taskId = t.Key.TrackerTaskId, DateGenerated = t.Key.DateGenerated, count = t.Count() }) 
        .ToLookup(k => k.taskId.Value, k => k.DateGenerated.Value.ToString() + "|" + k.count); 
のようなものを与えるだろうと

今、私はプロパティとして必要な3つの情報を持つ自己作成クラスのリストを作成することを考えています。

私は最高のパターンを選ぶのを手伝ってもらえますか?このメソッドはWindowsサービスでホストされており、クライアントに転送されるデータの量を制限したいと考えています。

あなたは

答えて

4

ここGroupByToDictionaryを使用して、例ですありがとう:助けるために働い

var testValues = new[]{new {ID = 1, Date = new DateTime(2010,1,1), Str = "Val1"}, 
         new {ID = 1, Date = new DateTime(2011,2,2), Str = "Val2"}, 
         new {ID = 2, Date = new DateTime(2010,1,1), Str = "Val3"}}; 
var dict = testValues.GroupBy(item => item.ID) 
        .ToDictionary(grp => grp.Key, 
            grp => grp.ToDictionary(item => item.Date, 
                  item => item.Str)); 
+0

、おかげで...私は前にこれを試してみましたがないように少し恥ずかしい場合でも。 – Gloups

関連する問題