我是一个Linq新手,正在为我的第一个GroupBy
查询苦苦挣扎。
我有一个KeywordInstance
对象列表,表示一个关键词和应用该关键词的数据库记录的ID。
Keyword RecordID
macrophages 1
macrophages 2
cell cycle 3
map kinase 2
cell cycle 1
我想要的是一个包含所有关键词及其应用到哪些记录ID的列表。
Keyword RecordIDs
macrophages 1, 2
cell cycle 1, 3
map kinase 2
我尝试使用 Linq 将其转换为一个新的对象,但我只能得到不同的关键词。
var keywords = allWords .GroupBy(w => w.keyword) .Select(g => new {keyword = g.Key});
问题在于我似乎无法以任何方式获取 g
的值。 g
的类型是 IGrouping<String, KeywordInstance>
,根据文档,它只有属性 Key
,甚至没有属性 Value
。我在互联网上看到的所有关于 groupby
的示例都只告诉我选择 g
本身,但是这段代码的结果是:
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new {keyword = g.Key, RecordIDs = g});
这不是我想要的。
尝试从g中获取任何东西都会导致错误消息System.Linq.IGropuing<string, UserQuery.KeywordInstance>
没有定义[无论我尝试什么]。
我在这里做错了什么?
g
的记录看起来像什么呢 :) ? - Jens Kloster