我的“where”查询没有找到我期望的数据

时间:2014-02-25 17:57:34

标签: c# linq where

我正在尝试在我的List中找到一个元素,其中属性fileName与我给它的变量匹配。

 var tenant = from c in Program.customerList 
              where c.fileName == name 
              select c;

 Console.WriteLine("found = " + tenant.Count());

返回0。

我知道我的列表中包含我想要检索的数据。我做错了什么?

我的列表中没有我要检索的数据。当我填充customerList时,从双字符串转换为字符串时,我失去了一些精度,这导致我的比较失败。

我想知道我的查询是否有任何问题,但没有任何问题。

3 个答案:

答案 0 :(得分:4)

如果您不需要完全匹配而不是equality,则可能需要string.Contains

var tenant = from c in Program.customerList where c.fileName.Contains(name) select c;
  

此方法执行序数(区分大小写和   文化不敏感)比较。搜索从第一个开始   这个字符串的字符位置,并持续到最后一个   字符,msdn

答案 1 :(得分:0)

试试这个

 var tenant = from c in Program.customerList where c.fileName.ToLower() == name.ToLower() select c;

答案 2 :(得分:-4)

var tenant = Program.cusomerList.Where(x => x.fileName == name)

tenant.Count()必须返回值> 0,如果Program.cusomerList具有fileName == name

的对象