gpt4 book ai didi

c# - 编写直通类型关联的更好方法

转载 作者:行者123 更新时间:2023-11-30 22:24:13 25 4
gpt4 key购买 nike

在 sql 中我有一个像这样的表:

PersonOrganisationRole

其中有列:

PersonId, OrganisationId RoleId

所以这是个人、组织和角色之间的三向表。

所以我想创建一种方法来获取一个人所属的所有组织:

public class Person
{
public IEnumerable<Organisation> Organisations
{
get
{
var organisations = new List<Organisation>();

foreach (var personOrganisationRole in PersonOrganisationRoles.Where(personOrganisationRole => !organisations.Contains(personOrganisationRole.Organisation)))
{
organisations.Add(personOrganisationRoles.Organisation);
}

return organisations;
}
}
}

因此,我基本上是通过遍历表中的所有项目来填充列表,并且只添加尚未添加的组织。这一点很重要,因为一个人可能在一个组织中担任多个角色,因此表中可能有多个行具有相同的 PersonId 和 OrganisationId。

我在想一定有更好的方法来编写这段代码。

有什么建议吗?

最佳答案

您可以使用 LINQ 的 Distinct 运算符进行唯一性收集,并使用 ToList 将结果收集到列表中:

return PersonOrganisationRoles
.Distinct(x => x.Organisation)
.ToList();

关于c# - 编写直通类型关联的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12886143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com