嵌套列表 Linq 返回 1 个最终列表 [重复]
Posted
技术标签:
【中文标题】嵌套列表 Linq 返回 1 个最终列表 [重复]【英文标题】:Nested Lists Linq to return 1 definitive list [duplicate] 【发布时间】:2014-10-06 15:23:53 【问题描述】:我们有一个包含嵌套列表的列表,即。
public class Question
public string Question get; set;
public List<Tag> Tags get; set;
public class Tag
public string TagName get; set;
public string TagDescription get; set;
然后我们有一个 GetQuestions() 返回问题列表的过程
public List<Tag> QuestionTags(int Type)
DAQuestions da = new DAQuestions();
var t = (from d in da.GetQuestions(Type)
)
select d.Tags).ToList();
我们正在努力实现它以返回 1 个明确的标签列表(无重复)。
我们现在返回的是一个
List<List<Tag>>
【问题讨论】:
使用SelectMany
来展平你的List<List<Tag>>
并实现IEqualityComparer<Tag>
以从该列表中获取不同的值。见:msdn.microsoft.com/en-us/library/vstudio/…
【参考方案1】:
你需要使用这样的东西:
da.GetQuestions(Type).SelectMany(q => q.Tags).Distinct().ToList();
Distinct
依赖查询提供程序来过滤掉相同的标签,因此它取决于您使用的 OR/M。
【讨论】:
以上是关于嵌套列表 Linq 返回 1 个最终列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章