簡體   English   中英

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

[英]How can i search partial part of a field using a list in LINQ?

我有一個類似名字的清單

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

還有一個完整的字段, Table.Organism一些值如:

“長枝披鹼草”“水稻(稻)”“擬南芥”

我怎么有這樣的查詢,

Var query =from c in Table where c.Organism.Contains(PartialOrganism) select c;

非常感謝。

如果我正確理解了這個問題,則需要一個如下所示的查詢:

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

該查詢的意思是:如果PartialOrganism包含c.Organism的子字符串中的任何字符串元素,請在表中查找所有記錄。

我認為您正在尋找所有部分生物。 您將不得不將查詢包裝成一個循環。

如下所示,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());
    }

這將充當或。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM