2013-02-05 122 views
-2

我得到這個錯誤,我試圖通過使用linq搜索列表。linq,Ajax錯誤,其中查詢返回null

當我找到結果它工作正常..但是當我沒有結果我得到這個錯誤,這對我沒有意義。

任何人都可以指出我在正確的方向如何調試這個錯誤?

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. 
+1

-1。這不是一個問題。 –

+0

那個錯誤是什麼意思?我正在嘗試調試它。 –

+2

這意味着,如果你期望世界上任何人都能夠幫助你至少應該發佈一些代碼... –

回答

2

基於代碼&給予,ClassA.dateClassA.date.Month,或ClassA.number做一些分析,並得到一個「好」的答案,你必須發佈這些屬性的代碼。

有一個小小的機會,data而不是date的錯字導致例外,但它真的很難說。

對於什麼是值得的(因爲這不是你提供的錯誤的原因),你必須檢查爲空。

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; 
} 
1

如果沒有結果,想必你對FirstOrDefault()調用將返回null。但是,您然後嘗試訪問此空引用的屬性number。您應該在執行此操作前檢查爲空:

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