linq where - >比较多头列表

时间:2011-12-08 12:46:18

标签: asp.net linq list linq-to-sql

我有以下linq查询

var q = from e in dbTov.assignedTaxonomyToContents
where e.taxonomy_id == lsTaxID[0]
|| e.taxonomy_id == lsTaxID[1]
|| e.taxonomy_id == lsTaxID[2]
select e;

但是,lsTaxID中可以包含更多项目(我不知道多少,每个页面请求都是动态的)。

是否有直观的方法来实现这一目标?

由于

5 个答案:

答案 0 :(得分:1)

使用包含:

var q = from e in dbTov.assignedTaxonomyToContents
where lsTaxID.Contains(e.taxonomy_id)
select e;

答案 1 :(得分:1)

尝试

where lsTaxId.Contains(e.taxonomy_id)

答案 2 :(得分:0)

试试这个:

var q = 
    from e 
    in dbTov.assignedTaxonomyToContents 
    where lsTaxID.Contains(e.taxonomy_id);

答案 3 :(得分:0)

假设分类标识必须与lsTaxID数组中的任何项匹配:

dbTov.assignedTaxonomyToContents
  .Where(e => lsTaxID.Any(id => id == e.taxonomy_id))

答案 4 :(得分:0)

除非lsTaxID [..]的所有元素都相同,否则您的示例代码将永远不会选择任何内容。试试这个;

var q = from e in dbTov.assignedTaxonomyToContents
where lsTaxID.Contains(e.taxonomy_id)
select e;