Я искал какое-то время и искал различные комбинации для моей проблемы.Анонимные типы LinQ - Проверить нулевое значение - Исключение
Я хочу заполнить свой Gridview результатами моего анонимного типа. Первый запуск в «цикле» идет хорошо, потому что все переменные имеют некоторое фактическое значение.
Но второй раз, чтобы заполнить ряд строк 2: Ссылка на объект не установлена в экземпляр объекта.
Это потому, что я, вероятно, назначил анонимный объект null, а обработчик gridview не смог его обработать. Я попытался выработать некоторые решения, но пока ничего не вышло.
Есть ли секретный проход, чтобы понять LinQ правильно?
Это мой код прямо сейчас:
var filteredlist = from info in list // List from external
select new
{
Question = info.QuestionText ?? "Test",
CorrectAnswer = info.CorrectAnswer.OptionText ?? "Test",
WrongAnswer1 = info.WrongAnswer1.OptionText ?? "Test",
WrongAnswer2 = info.WrongAnswer2.OptionText ?? "Test", //Throws Error
WrongAnswer3 = info.WrongAnswer3.OptionText ?? "Test" //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();
Второй попробовать
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();
Пожалуйста, обратите внимание на код форматирования в своем вопросе. Это имеет огромное значение для читаемости. –