【问题标题】:Want to find unique teams where individual is manager or member想要找到个人是经理或成员的独特团队
【发布时间】:2015-12-15 15:49:26
【问题描述】:

我有一个如下所示的团队对象:

public class Team
{
   public int Id { get; set; }
   public string Name { get; set; }
   public Guid ManagerId { get; set; }
   public List<Guid> Members { get; set; }
}

一个人可以同时是团队的经理和成员。我想获取一个人是经理或成员的独特团队的列表。

比如说,我有一个 John Doe 的 GUID。我想找到他关联的所有团队,我的所有数据都在List&lt;Team&gt; teams 中。我知道如何找到 John 担任经理的所有团队,但不知道如何将 John 所在的团队也包括在内。

var johnsTeams = teams.Where(x => x.ManagerId == johnsId)...???

【问题讨论】:

  • 哈哈!当我在最新问题列表中看到标题时,我以为你的问题是求职问题!

标签: c# linq


【解决方案1】:

您可以使用|| 来包含 john 是成员的团队,也可以使用 .Distinct() 来删除重复项(“John 既是经理又是团队成员”):因此您的代码将如下所示:

var johnsTeams = teams.Where(x => x.ManagerId == johnsId || x.Members.Contains(johnsId)).Distinct().ToList();

【讨论】:

    【解决方案2】:

    你快到了。您只需要检查Members 列表是否包含John 的Guid。这可以通过使用x.Members.Contains(johnsId) 来完成。

    var johnsTeams = teams.Where(x => x.ManagerId == johnsId || x.Members.Contains(johnsId)).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2018-05-01
      • 1970-01-01
      相关资源
      最近更新 更多