[英]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”塊中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.