我有一个方法,它接受一个字符串数组作为参数,并针对一个集合属性进行查询,该集合属性也是一个字符串集合。如果该属性具有作为参数传递的字符串数组中的值之一,则应将其返回。
这是我的代码:
public IEnumerable<BlogPost> GetAll(string[] tags,
bool includeUnapprovedEntries = false) {
foreach (var tag in tags) {
foreach (var blogPost in GetAll(includeUnapprovedEntries).
ToList().Where(x => x.Tags.Any(t => t == tag))) {
yield return blogPost;
}
}
}
笔记:
这是完整的代码:
这可以完成工作,但它似乎并不正确。我本可以使用一些扩展方法使这变得更好,但无法弄清楚什么可以解决问题并使这个实现正确。
任何的想法?