18

Linq の初心者で、最初の group by query に苦労しています。

キーワードを表す 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 キーワード = 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});

私が欲しいものではありません。

結果のスクリーンショット

g から何かを取得しようとすると、エラー メッセージ が表示されて失敗しますSystem.Linq.IGropuing<string, UserQuery.KeywordInstance> does not have a definition for [whatever I tried]

ここで何が間違っていますか?

4

1 に答える 1