LINQ查询不会给出任何结果(查找数字所属的区间)

时间:2013-03-25 11:43:00

标签: c# .net linq

我有一个看起来像这样的属性类

ZipStart | ZipEnd | Acode

10000    | 13999  | BEK

14000    | 14999  | ATE

现在,我有一个值,例如11332,我想查找该号码属于哪个Acode,为此我有以下代码:

           var res = from o in ListOfDataClass
                  where iCode >= o.ZipStart && o.ZipEnd <= iCode
                  select o;

            var c = res.FirstOrDefault();
            return c.Acode;

然而,这不时会导致null,但我还是找不到模式,但是由于这个方法出现了问题,我已经能够从调试器中扣除iCode IS实际上是11332但是LINQ查询不会产生任何结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您的情况不正确 第二部分必须是o.ZipEnd >= iCodeiCode <= o.ZipEnd

答案 1 :(得分:1)

我认为你必须稍微改变一下你的状况:

where iCode >= o.ZipStart && iCode <=  o.ZipEnd