1
我有简单的EAV'ish场景,其中User
可以在多个Usergroup
和Usergroup
可以有多个Field
。我选择用户,选择他的所有用户组,然后显示字段。GroupBy - 这是预期的行为吗?
问题是我不想显示带有重复Key
属性的字段。
现状
Fields = user.Usergroups
.SelectMany(x => x.UsergroupFields)
.Select(field => new
{
field.Key
})
产品
"Fields": [
{
"Key": "field 1"
},
{
"Key": "field 1"
},
{
"Key": "field 2"
}
]
正如你可以看到我有多个field 1
,我想根据Key
属性来删除重复。我试图做GroupBy()
,但它做了一些奇怪的事情。
的GroupBy()在
"Fields": [
{
"Key": "field 1"
},
{
"Key": "field 1"
}
]
Fields = user.Usergroups
.SelectMany(x => x.UsergroupFields)
.GroupBy(field => field.Key)
.FirstOrDefault()
.Select(field => new
{
field.Key
})
结果似乎的GroupBy()是做什么我要实现完全相反。
你把第一组* *不每个组中的第一项。 '的GroupBy(...)。选择(X => x.First()' – I4V