Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ中的列表搜索字段的部分?_C#_Linq_List - Fatal编程技术网

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

C# 如何使用LINQ中的列表搜索字段的部分?,c#,linq,list,C#,Linq,List,我有一张名单,上面有 List<string> PartialOrganism = new List<string>{ "Arabidopsis", "Elsholtzia", "Elymus", "Oryza sativa" }; 非常感谢。如果我正确理解了问题,您将需要一个如下所示的查询: var query = from c in Table where PartialOrganism.Any(po => c.Organism.Contains(po))

我有一张名单,上面有

 List<string> PartialOrganism = new List<string>{ "Arabidopsis", "Elsholtzia", "Elymus", "Oryza sativa" };

非常感谢。

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

var query = from c in Table
where PartialOrganism.Any(po => c.Organism.Contains(po))
select c;

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

我想您正在搜索所有的PartialOrganism。您必须将查询包装在一个循环中

下面的例子中,匹配组织是一个可以附加到的对象

foreach (string organism in PartialOrganisms)
    {
       matchingOrganisms =  (from c in Table where c.Organism.Contains(organism) select c);
    }
这里有一个更全面的例子。声明列表(也可以是自定义对象等的列表)


这将作为or。

请您详细说明您想要得到什么。提供一个例子(输入/输出),这将是非常有益的。感谢您想要查找Organism字段是否包含列表中的任何项目?非常接近
c.Organism.Where(org=>PartialOrganism.any(org.contains))
请参见此示例
var query=from c in Table.Organism Where c.Organism.contains(“拟南芥”)选择c
非常感谢@Drew,但它表明,除了Contains()运算符外,查询运算符的LINQ to SQL实现中不能使用错误局部序列。它说,在每个Foreach步骤
查询vi下一个Foreach步骤中,但我需要与列表项
一起进行比较,你能帮帮我吗?这和or的作用一样,关键是在每个循环迭代中附加匹配组织。类似于:matchingOrganisms.AddRange(…),然后添加,然后循环结束,您将拥有所有匹配项。
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());
    }