Fil*_*lip 5 c# linq lambda equals-operator
可能的重复:
Lambda 表达式:== 与 .Equals()
你好,
我经常使用关键字 Equals 来比较变量和其他东西。
但
wines = wines.Where(d => d.Region.Equals(paramRegion)).ToList();
Run Code Online (Sandbox Code Playgroud)
当数据区域为 NULL 时,在运行时返回错误
我不得不使用代码
wines = wines.Where(d => d.Region == paramRegion).ToList();
Run Code Online (Sandbox Code Playgroud)
摆脱错误。
任何想法为什么会引发错误?
谢谢。
您不能使用空对象引用调用实例方法。在调用其实例方法之前,您应该检查 Region 是否为空。
wines = wines.Where(d => d.Region != null && d.Region.Equals(paramRegion)).ToList();
Run Code Online (Sandbox Code Playgroud)
该d.Region == paramRegion
是(最有可能)扩大到object.Equals(d.Region, paramRegion)
与静态方法做检查参数是否为空或不调用equals()方法之前。
如果您知道paramRegion
不能为空,您也可以以不同的顺序编写条件。
Debug.Assert(paramRegion != null);
wines = wines.Where(d => paramRegion.Equals(d.Region)).ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26460 次 |
最近记录: |