如何在LINQGroupBy中获取分组值列表?
Linq新手在这里,与我的第一组问题进行斗争 我有一个KeywordInstance类型的对象列表,这些对象表示一个关键字,以及应用该关键字的数据库记录的ID如何在LINQGroupBy中获取分组值列表?,linq,group-by,Linq,Group By,Linq新手在这里,与我的第一组问题进行斗争 我有一个KeywordInstance类型的对象列表,这些对象表示一个关键字,以及应用该关键字的数据库记录的ID Keyword RecordID macrophages 1 macrophages 2 cell cycle 3 map kinase 2 cell cycle 1 我想要的是所有关键字的集合,以及应用每个关键字的RecordID列表 Keyword RecordIDs macrophages 1
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关键字=所有单词
.GroupBy(w=>w.keyword)
.Select(g=>new{keyword=g.Key})
问题是我似乎无法以任何方式得到g的值。g属于IGrouping类型,根据文档,它只有属性键,甚至没有属性值。我在网上看到的groupby的所有例子都告诉我选择g本身,但结果是
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new {keyword = g.Key, RecordIDs = g});
这不是我想要的
任何试图从g中获取某些内容的尝试都会失败,并显示错误消息System.Linq.IGropuing没有[我尝试的任何内容]
的定义
我做错了什么 我想你已经接近你的解决方案了
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new
{
keyword = g.Key,
RecordIDs = g.Select(c => c.ID)
});
只需选择所需的记录。你看到关键字列和ID列的原因是因为它是
g
的一部分,我可以想象这个问题是重复的,但我一定搜索了错误的关键字,至少我找到的搜索结果对我没有帮助。我看不到问题——你有一个键,以及属于该键的所有记录?你希望g
的记录是什么样子的:)?@JensKloster我不在乎g的记录是什么样子的。我需要的是一个数据结构,它将整数列表{3,169,2179,2188,2334,2389,2496}映射到关键的“因子受体”。我想我会使用groupby,显然我用错了,从中得到了g,而不是我需要的。所以问题是,我该如何正确使用它呢?谢谢,我试着用RecordIDs=g.Values.ID这样的东西来做,但从来没有想过在g上使用嵌套查询。