Linq新手在这里,通过查询与我的第一组挣扎.
我有一个KeywordInstance类型的对象列表,它表示一个关键字,以及应用该关键字的数据库记录的ID.
Keyword RecordID
macrophages 1
macrophages 2
cell cycle 3
map kinase 2
cell cycle 1
Run Code Online (Sandbox Code Playgroud)
我想要的是所有关键字的集合,以及应用每个关键字的RecordID列表
Keyword RecordIDs
macrophages 1, 2
cell cycle 1, 3
map kinase 2
Run Code Online (Sandbox Code Playgroud)
我尝试使用Linq将其转换为新对象.我只设法获得了不同的关键字.
var keywords = allWords .GroupBy(w => w.keyword).Select(g => new {keyword = g.Key});
问题是我似乎无法以任何方式获得g的值.g是IGrouping类型,根据文档,它只有属性Key,但甚至没有属性Value.我在互联网上看到的所有关于groupby的例子只是告诉我选择g本身,但结果是
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new {keyword = g.Key, RecordIDs = g});
Run Code Online (Sandbox Code Playgroud)
不是我想要的.

任何尝试从g获取的东西都会失败并显示错误消息System.Linq.IGropuing<string, UserQuery.KeywordInstance> does not have a definition for [whatever I tried].
我在这做错了什么?
Jen*_*ter 22
我认为你很接近你的解决方案.
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new
{
keyword = g.Key,
RecordIDs = g.Select(c => c.ID)
});
Run Code Online (Sandbox Code Playgroud)
只是Select你需要的记录.
你看到Keyword- column和ID- column的原因是它的一部分g
| 归档时间: |
|
| 查看次数: |
26758 次 |
| 最近记录: |