[英]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.