使用Linq将列表转换为带分组的字典

3

我有以下变量:

List<Tuple<DataType, String, List<String>>> items;

我需要创建一个Dictionary<DataType, String[]>,其中DataType是元组的Item1,而String[]是该DataType下所有元组的Item2。

所以我尝试了以下代码:

Dictionary<DataType, String[]> d = items.GroupBy(x => x.Item1)
    .ToDictionary(x => x.Key, x => x.Value);

这段代码无法编译。

我该如何解决?


3
иҝҷжҳҜдёҖдёӘдҪҝз”Ёе…ғз»„дёҚйҖӮеҗҲзҡ„еҘҪдҫӢеӯҗпјҢеә”иҜҘдҪҝз”Ёе‘ҪеҗҚзұ»еһӢпјҲnamed typeпјүжқҘд»ЈжӣҝгҖӮ - Servy
1
当您遇到编译器错误时,请包括错误信息和出现位置。不要只说“这无法编译”。 - Servy
是的,也许...但这是类内部的事情,所以当我只想保存一些数据时,我不想创建太多对象... - Miguel Moura
将代码变得更难阅读/理解,而添加类只需要一分钟的时间,这可以是一个嵌套类(如果需要的话)。创建类型并不昂贵。 - Servy
1个回答

9
Dictionary<DataType, String[]> d = items
    .GroupBy(x => x.Item1)
    .ToDictionary(
        g => g.Key,
        g => g.Select(t => t.Item2).ToArray()); //the change is on this line
< p > IGrouping<TKey, TElement> 类型没有Value成员。它有一个Key属性,并实现了IEnumerable<TElement>


啊,我以为他想要第三个项目,算了。 - Servy
@Servy 没问题。是的,我一开始也很困惑,因为他在元组中有第三个项目,但实际上与问题无关。 - Timothy Shields

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接