Linq新手在这里,通过查询与我的第一组挣扎 .
我有一个KeywordInstance类型的对象列表,它表示一个关键字,以及应用该关键字的数据库记录的ID .
Keyword RecordID
macrophages 1
macrophages 2
cell cycle 3
map kinase 2
cell cycle 1
我想要的是所有关键字的集合,以及应用每个关键字的RecordID列表
Keyword RecordIDs
macrophages 1, 2
cell cycle 1, 3
map kinase 2
我尝试使用Linq将其转换为新对象 . 我只是设法获得了不同的关键字 .
var keywords = allWords .GroupBy(w => w.keyword).Select(g => new );
问题是我似乎无法以任何方式获得g的值 . g是IGrouping类型,通过文档,它只有属性Key,但甚至没有属性Value . 我在互联网上看到的所有例子只是告诉我选择g本身,但结果是
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new {keyword = g.Key, RecordIDs = g});
不是我想要的 .
任何尝试从g获取的东西都会失败,并显示错误消息 System.Linq.IGropuing<string, UserQuery.KeywordInstance> does not have a definition for [whatever I tried]
.
我在这做错了什么?
1 回答
我认为你很接近你的解决方案 .
只需
Select
您需要的记录 .您看到关键字列以及ID列的原因是因为它是
g
的一部分