关于多个标准的问题List(T).Where

时间:2011-07-29 18:35:05

标签: c# list collections where-clause

现在我无法获得正确的信息

   List<HeaderHelper> h = pr.Actual_View();
   foreach (TemplateHeader t in pr.TemplateView()) 
   {
      var v= h.Where(z => z.Country == t.Pais 
                       && z.dia == t.diaTotal 
                       && z.Segment == t.Segmento).FirstOrDefault();
   }

    pr.Actual_View()

是包含以下字段的列表的类方法:

  • 国家(字符串)
  • dia(int)
  • 细分(字符串)

    pr.TemplateView()

是包含相同字段和相同数据类型的列表的类方法

列表t可能包含比列表h更多的信息,因此我需要使用多个条件过滤列表h,但是当我运行代码时没有正确过滤列表,返回null。

1 个答案:

答案 0 :(得分:2)

如果v为空,则表明t中的所有值均未与您的Where子句匹配,因此FirstOrDefault返回了默认值TemplateHeader ,这是null。

如果没有更多信息或样本数据,我们绝对无法知道为什么 t中没有任何值匹配,但这就是v的空值表示。