如何为列表中的每个项执行linq查询,在where子句中使用它,并从每个查询的结果返回集合?

如何为列表中的每个项执行linq查询,在where子句中使用它,并从每个查询的结果返回集合?,linq,Linq,如您所见,我正在执行列表中第一个元素的查询。 我希望对列表中的每个类别执行查询,并返回一个集合,其中包含所有查询的结果,并且没有重复项(一个问题可以是多个类别) PublicObservableCollection GetQuestionsByCategory(列表类别) { var c=类别[0]; var questions=来自此.q中的q,其中q.Categories.Contains(c)包含的问题 选择q; 返回新的ObservableCollection(问题); } 您可以这样做

如您所见,我正在执行列表中第一个元素的查询。 我希望对列表中的每个类别执行查询,并返回一个集合,其中包含所有查询的结果,并且没有重复项(一个问题可以是多个类别)

PublicObservableCollection GetQuestionsByCategory(列表类别)
{
var c=类别[0];
var questions=来自此.q中的q,其中q.Categories.Contains(c)包含的问题
选择q;
返回新的ObservableCollection(问题);
}
您可以这样做:

var questions = 
    (from c in categories
    from q in this.Questions where q.Categories.Contains(c)
    select q).Distinct();
但我建议这样做:

var questions = from q in this.Questions
                where q.Categories.Any(c => categories.Contains(c))
                select q;

非常感谢你!