簡體   English   中英

Linq Multiple where子句不起作用

[英]Linq multiple where clauses doesn't work

我正在嘗試從Excel工作表(csv)中獲取特定數據。

var rows = excelsheet
    .Where(x => x.Text == domain.Name 
             && x.Text.Contains(domaintype.ToString()))
    .Select(x => x.Start.Row)
    .ToList();

我希望它對域名進行過濾,並且該行中的任何單元格都可以在其中包含單詞x.Text.Contains(domaintype.ToString()

但是當我運行代碼時,它變成空的。 只執行其中任何一個where子句都可以。 但是我需要同時使用這兩個子句。 我需要行號才能使代碼正常工作。

這是一個例子:

"1 ; Respect ; Hielden uw zorgverleners rekening met uw privacy? ; Vraag antenataal 11"

domain.Name是“尊重”, domaintype是,在這種情況下, “antenataal”。 因此,我希望每個行號中都包含這兩個過濾器。

我知道domain.Name具有“ Respect”, domaintype具有“ antenataalal”(通過調試)。

代替

var rows = excelsheet
.Where(x => x.Text == domain.Name 
         && x.Text.Contains(domaintype.ToString()))
.Select(x => x.Start.Row)
.ToList();

嘗試

var rows = excelsheet
.Where(x => x.Text.Contains(domain.Name) 
         && x.Text.Contains(domaintype.ToString()))
.Select(x => x.Start.Row)
.ToList();

基本上,您的第一個條件是要求“ 1;尊重; Hielden uw zorgverleners拒絕滿足您的隱私?; Vraag附件11”應等於“ Respect”,而不是包含它,這就是為什么不返回任何值的原因。

關於CSV文件的解析,SO上已經有一個主題可以推薦多個解析器,您可以將其簽出並選擇最適合自己的解析器。 我在一個小項目中使用了TextFieldParser ,它非常簡單(但不要忘記將其包裝在“ using”塊中)。

用C#解析帶頭的CSV文件

暫無
暫無

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

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