從我的研究中我發現我的問題與這裏找到的問題非常接近,但仍然沒有回答我的具體示例問題。遍歷Linq結果給對象引用未設置爲實例
我的LINQ查詢:
var MyResults = (from m in GetData.myTable
where m.id.equals(123)
select new
{
value1,
value2,
value3
}).SingleOrDefault();
任何值1,值或VALUE3內的三個字段可以爲空。
我檢查MyResults是否爲空(意味着所有值爲空)。
if (MyResults != null)
{
// ok lets pretend in this case the values returned in the MyResults were value1 = 3, value2 = null, value3=null
// now I want to check if each of the values and set desired label
if (!MyResults.value1.Equals(null))
{
label1.text = MyResults.value1; // 3
}
else
{
label1.text = "Null Returned";
}
if (!myResults.value2.equals(null))
{
label2.text = MyResults.value2;
}
else
{
label2.text = "value 2 is null";
}
// skipping label3 block here
}
else // myResults returned null
{
label1.text = "All values were null";
}
所以Label1的設置就好了,但是當代碼達到
如果(!MyResults.value2.equals(空))
它拋出一個錯誤對象引用未設置到一個對象的實例,參考!MyResults.value2.equals(null)作爲罪魁禍首。那麼我怎樣才能爲值2和3設置標籤,而不會在處理空值時展開呢?
謝謝。希望有人能教我什麼我失蹤。
如果值2爲空,你怎麼能叫上Equals方法?你剛剛試過'if(MyResults.value2!= null)'? –
@ChrisDunaway這已經不是評論的答案了。 –