2013-01-02 24 views
0

我必須聲明與INT鍵和一類值的字典 Dictionary<int, List<clsBook>> dicBook = new Dictionary<int, List<clsBook>>();如何一起加入2行中的相同的字典C#

我想,當執行一個加入行的字典某些值等於第二行。

我的代碼如下,但是我得到錯誤 「無法隱式轉換類型System.collections.generic.list < System.collections.generic.list < clsBOOK>>到System.Collections.Generic.List < clsBook>」

  List<clsBook> aaa = (from OD in dicBook 
          join OD2 in dicBook 
          on OD.Value[1] equals OD2.Value[1] 
          select OD.Value).ToList(); 
+4

你想達到什麼目的?在同一本詞典中加入同樣的價值似乎毫無意義,不是嗎?除此之外,'SelectMany'就是你要找的。 –

+1

您能否詳細解釋您想要實現的目標? –

回答

1

一個Dictionary暴露了一個IEnumerable<KeyValuePair<TKey, TValue>>,因爲你的TValueList<clsBook>你會最終有一個不能被分配到List<clsBook>List<List<clsBook>

如果你能描述你正在努力達到的目標,因爲這對我來說並不明顯,那麼我可能會幫助更多。

即使您使用SelectMany來基本連接列表,我也沒有看到您嘗試實現的邏輯。

是否要合併共享相同第一個元素的所有列表?你在做什麼會導致字典中每個列表至少翻一番。

1

試試下面的代碼:

var dicBook = new Dictionary<int, List<clsBook>>(); 
      List<List<clsBook>> aaa = (from OD in dicBook 
           join OD2 in dicBook 
           on OD.Value[1] equals OD2.Value[1] 
           select OD.Value).ToList(); 

希望這有助於。