0

INT のキーとクラスの値を持つ辞書を宣言しました Dictionary<int, List<clsBook>> dicBook = new Dictionary<int, List<clsBook>>();

特定の値が2番目の行と等しい場合、辞書で行の結合を実行したいと思います。

私のコードは次のとおりですが、「型 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

2 に答える 2

1

ADictionaryは を公開しIEnumerable<KeyValuePair<TKey, TValue>>ます。これは、 に割り当てることTValueができないList<clsBook>anになるためです。List<List<clsBook>List<clsBook>

あなたが達成しようとしていることを説明できれば、これは私には明らかではないので、もっとお手伝いできるかもしれません.

SelectMany基本的にリストを連結するために使用したとしても、達成しようとしていることにロジックはありません。

同じ最初の要素を共有するすべてのリストを結合しますか? あなたがしていることは、辞書の各リストを少なくとも2倍にすることになります。

于 2013-01-02T10:42:08.697 に答える
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();

お役に立てれば。

于 2013-01-02T10:47:25.553 に答える