LINQ:连接/联合多个序列

时间:2011-04-26 22:29:41

标签: linq linq-to-entities

给出以下课程

public class Entity
{
  public IList<Tag> Tags { get; set; }
}

并且在我的存储库中我希望得到所有Tag的所有(不同的)Entity,除了

之外还有其他方法吗?
public class Repository()
{
  public IList<Tag> GetAllTags()
  {
    List<Tag> tags = new List<Tag>();
    var entities = _session.GetAllEntities();
    foreach (var entity in entities)
    {
      tags.AddRange(entity.Tags);
    }
    return tags.Distinct().ToList();
  }
}

,例如

public class Repository()
{
  public IList<Tag> GetAllTags()
  {
    _session.GetAllEntities().Select(x => x.Tags).....Distinct().ToList()
  }
}

1 个答案:

答案 0 :(得分:1)

public class Repository()
{
  public IList<Tag> GetAllTags()
  {
    var entities = _session.GetAllEntities();
    return entities.SelectMany(e => e.Tags).Distinct().ToList();
  }
}