我有一个名单,名字如下
List<string> PartialOrganism = new List<string>{ "Arabidopsis", "Elsholtzia", "Elymus", "Oryza sativa" };一个完整的字段,Table.Organism一些值,如:
“披碱草”"Oryza sativa (水稻)“”拟南芥“
我怎么能有这样的查询,
Var query =from c in Table where c.Organism.Contains(PartialOrganism) select c;非常感谢。
发布于 2014-05-08 13:13:42
如果我正确理解了这个问题,您将需要一个如下所示的查询:
var query = from c in Table
where PartialOrganism.Any(po => c.Organism.Contains(po))
select c;这个查询的意思是:如果PartialOrganism包含任何字符串元素(这是c.Organism的子字符串),请在表中查找所有记录。
发布于 2014-05-08 13:17:12
我想你是在寻找所有的部分有机体。您必须将查询包装在一个循环中。
如下所示,matchingOrganisms是一个可以附加到的对象。
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());
}这将作为一个或。
https://stackoverflow.com/questions/23542452
复制相似问题