linq,Ajax错误,查询返回null

本文关键字:返回 null 查询 错误 Ajax linq | 更新日期: 2023-09-27 17:57:54

我收到这个错误,我正在尝试使用linq搜索列表。

当我发现结果时,它运行良好。。但当我没有结果时,我会得到这个错误,这对我来说没有意义。

任何人都可以为我指出如何调试这个错误的正确方向?

Microsoft JScript运行时错误:Sys.ArgumentException:无法反序列化。数据与有效的JSON不对应。参数名称:数据

样本代码:

IEnumerable<ClassA> listClassA = bar.ToList(); // at this point list contains values.
decimal b = listClassA.FirstOrDefault(a => a.date.Month == 9).number; // at this point if there are no results it crashes and i get the error.

linq,Ajax错误,查询返回null

基于代码&提供的注释,ClassA.dateClassA.date.MonthClassA.number会进行一些解析,为了得到"好"的答案,您必须发布这些属性的代码。

有一点可能是data而不是date的拼写错误导致了异常,但这真的很难说。

为了它的价值(因为这不是你提供的错误的原因),你必须检查null。

decimal b = listClassA.FirstOrDefault(a => a.date.Month == 9).number;

应该是:

decimal b;
var septemberData = listClassA.FirstOrDefault(a => a.date.Month == 9);
if (septemberData != null)
{
    b = septemberData.number;
}

当没有结果时,对FirstOrDefault()的调用可能会返回null。但是您正在尝试访问这个null引用的属性number。在执行此操作之前,您应该检查null:

var firstItem = listClassA.FirstOrDefault(a => a.date.Month == 9);
decimal b = (firstItem != null ? firstItem.number : -1); // or pick some other sensible default value