0

我已经用 INT 上的键和类的值声明了一个字典 Dictionary<int, List<clsBook>> dicBook = new Dictionary<int, List<clsBook>>();

当某个值等于第二行时,我想在字典中执行行连接。

我的代码如下,但我收到错误“无法将类型 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

试试下面的代码:

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 回答
1

ADictionary暴露一个IEnumerable<KeyValuePair<TKey, TValue>>,因为你TValueList<clsBook>你最终会得到一个List<List<clsBook>不能分配给的 an List<clsBook>

如果您可以描述您要实现的目标,因为这对我来说并不明显,那么我可能会提供更多帮助。

即使您使用SelectMany本质上连接列表,我也看不出您试图实现的任何逻辑。

你想合并所有共享相同第一个元素的列表吗?您所做的将导致字典中的每个列表至少翻倍。

于 2013-01-02T10:42:08.697 回答