我已經搜索了一段時間,並嘗試了各種類型的組合,爲我的問題。匿名類型LinQ - 檢查空值 - 異常
我想用我的匿名類型的結果填充我的Gridview。 「循環」中的第一次運行順利,因爲所有變量都有一些實際值。
但是第二次填充行號2拋出:未將對象引用設置爲對象的實例。
這是因爲我可能分配一個匿名對象爲null和GridView不能處理它。 我試着找出一些解決方案,但還沒有解決。
有沒有一個祕密通道來正確理解LinQ?
這是我的代碼現在:
這是我試圖得到它的工作。
var filteredlist = from info in list // list from external
select new
{
Question = info.QuestionText == null ? "Test" : info.QuestionText,
CorrectAnswer = info.CorrectAnswer.OptionText == null ? "Test" : info.CorrectAnswer.OptionText,
WrongAnswer1 = info.WrongAnswer1.OptionText == null ? "Test" : info.WrongAnswer1.OptionText,
WrongAnswer2 = info.WrongAnswer2.OptionText == null ? "Test" : info.WrongAnswer2.OptionText, //Throws Error
WrongAnswer3 = info.WrongAnswer3.OptionText == null ? "Test" : info.WrongAnswer3.OptionText, //Throws Error
};
GridView1.DataSource = filteredlist;
GridView1.DataBind();
第二次嘗試
var filteredlist = from info in list // list from external
select new
{
Question = info.QuestionText != null ? "Test" : info.QuestionText,
CorrectAnswer = info.CorrectAnswer.OptionText != null ? "Test" : info.CorrectAnswer.OptionText,
WrongAnswer1 = info.WrongAnswer1.OptionText != null ? "Test" : info.WrongAnswer1.OptionText,
WrongAnswer2 = info.WrongAnswer2.OptionText != null ? "Test" : info.WrongAnswer2.OptionText, //Throws Error
WrongAnswer3 = info.WrongAnswer3.OptionText != null ? "Test" : info.WrongAnswer3.OptionText, //Throws Error
};
GridView1.DataSource = filteredlist;
GridView1.DataBind();
請在您的問題中格式化代碼時多加註意。它對可讀性有很大的影響。 – 2013-03-21 11:33:22