我有名单中的列表,如
List<string> PartialOrganism = new List<string>{ "Arabidopsis", "Elsholtzia", "Elymus", "Oryza sativa" };
一个完整的字段, Table.Organism 一些值如:
“Elymus elongatum” “Oryza sativa(Rice)” “拟南芥”
我怎么能有这样的查询,
Var query =from c in Table where c.Organism.Contains(PartialOrganism) select c;
非常感谢。
答案 0 :(得分:0)
如果我正确理解了这个问题,您可能需要一个如下所示的查询:
var query = from c in Table
where PartialOrganism.Any(po => c.Organism.Contains(po))
select c;
这个查询说:如果PartialOrganism包含任何字符串元素是c.Organism的子字符串,请找到Table中的所有记录。
答案 1 :(得分:0)
我认为你正在寻找所有部分生物。您必须在循环中包装查询。
下面的内容,matchOrganisms是你可以附加的对象。
foreach (string organism in PartialOrganisms)
{
matchingOrganisms = (from c in Table where c.Organism.Contains(organism) select c);
}
这是一个更全面的例子。声明一个列表(这也可以是一个自定义对象列表等。)
List<object> rows = new List<object>();
然后将每个查询的结果添加到列表中:
foreach (string organism in PartialOrganisms)
{
rows.AddRange((from c in Table where c.Organism.Contains(organism) select c).ToList());
}
这将充当或。