我有简单的 EAV'ish 场景,其中User
可以有多个Usergroup
并且Usergroup
可以有多个Field
. 我选择用户,选择他的所有用户组,然后显示字段。
问题是我不想显示具有重复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()
但它正在做一些奇怪的事情。
通过...分组()
Fields = user.Usergroups
.SelectMany(x => x.UsergroupFields)
.GroupBy(field => field.Key)
.FirstOrDefault()
.Select(field => new
{
field.Key
})
结果是
"Fields": [
{
"Key": "field 1"
},
{
"Key": "field 1"
}
]
GroupBy() 似乎与我想要实现的目标完全相反。