繁体   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