首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用LINQ中的列表搜索字段的部分部分?

如何使用LINQ中的列表搜索字段的部分部分?
EN

Stack Overflow用户
提问于 2014-05-08 12:58:14
回答 2查看 130关注 0票数 1

我有一个名单,名字如下

代码语言:javascript
复制
 List<string> PartialOrganism = new List<string>{ "Arabidopsis", "Elsholtzia", "Elymus", "Oryza sativa" };

一个完整的字段,Table.Organism一些值,如:

“披碱草”"Oryza sativa (水稻)“”拟南芥“

我怎么能有这样的查询,

代码语言:javascript
复制
Var query =from c in Table where c.Organism.Contains(PartialOrganism) select c;

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-08 13:13:42

如果我正确理解了这个问题,您将需要一个如下所示的查询:

代码语言:javascript
复制
var query = from c in Table
where PartialOrganism.Any(po => c.Organism.Contains(po))
select c;

这个查询的意思是:如果PartialOrganism包含任何字符串元素(这是c.Organism的子字符串),请在表中查找所有记录。

票数 0
EN

Stack Overflow用户

发布于 2014-05-08 13:17:12

我想你是在寻找所有的部分有机体。您必须将查询包装在一个循环中。

如下所示,matchingOrganisms是一个可以附加到的对象。

代码语言:javascript
复制
foreach (string organism in PartialOrganisms)
    {
       matchingOrganisms =  (from c in Table where c.Organism.Contains(organism) select c);
    }

这里有一个更彻底的例子给你。声明一个列表(这也可以是一个自定义对象的列表等等)

代码语言:javascript
复制
List<object> rows = new List<object>();

然后将每个查询的结果添加到列表中:

代码语言:javascript
复制
foreach (string organism in PartialOrganisms)
    {
       rows.AddRange((from c in Table where c.Organism.Contains(organism) select c).ToList());
    }

这将作为一个或。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23542452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档