LINQ对象引用未设置为对象的实例

时间:2014-06-28 07:23:07

标签: c# linq

我正在使用Linq Query从数据表dt_Customers中获取一些数据。我使用以下代码:

 IEnumerable<DataRow> enumerableDataRowCollection =
                   from company in dt_Customers.AsEnumerable()
                   let zip = company.Field<string>("ZIP")
                   where ((zip != null) && zip.StartsWith("" + 4 + "") || zip.StartsWith("" + 5 + ""))
                   select company;

在Where子句(where ((zip != null) && zip.StartsWith("" + 4 + "") || zip.StartsWith("" + 5 + "")))中我收到此错误,&#34;对象引用未设置为对象的实例。&#34;。

我读过这篇文章Linq query "Object reference not set to an instance of an object"LINQ Object Referance not set

在此之后我更新了Where子句并进行了检查(zip != null)但是我仍然遇到同样的错误。

2 个答案:

答案 0 :(得分:1)

AND比OR更强 - 所以试试这个:

IEnumerable<DataRow> enumerableDataRowCollection =
                   from company in dt_Customers.AsEnumerable()
                   let zip = company.Field<string>("ZIP")
                   where (zip != null && (zip.StartsWith(postalcodefrom) 
                                          || zip.StartsWith(postalcodeto)))
                   select company;

答案 1 :(得分:0)

你应该改变这样的括号:

 where zip != null && (zip.StartsWith("" + postalcodefrom + "") || 
                        zip.StartsWith("" + postalcodeto + ""))

除了检查null之外,您还需要找出zip null

的原因