У меня есть приложение asp.net, в котором я использую linq для обработки данных. Во время работы я получаю исключение «Последовательность не содержит подходящего элемента».
if (_lstAcl.Documents.Count > 0)
{
for (i = 0; i <= _lstAcl.Documents.Count - 1; i++)
{
string id = _lstAcl.Documents[i].ID.ToString();
var documentRow = _dsACL.Documents.First(o => o.ID == id);
if (documentRow !=null)
{
_lstAcl.Documents[i].Read = documentRow.Read;
_lstAcl.Documents[i].ReadRule = documentRow.ReadRule;
_lstAcl.Documents[i].Create= documentRow.Create;
_lstAcl.Documents[i].CreateRule = documentRow.CreateRule;
_lstAcl.Documents[i].Update = documentRow.Update;
_lstAcl.Documents[i].UpdateRule = documentRow.UpdateRule;
_lstAcl.Documents[i].Delete = documentRow.Delete;
_lstAcl.Documents[i].DeleteRule = documentRow.DeleteRule;
}
}
}
o.ID
вызовет исключение NullReferenceException для нулевого значения.Из библиотеки MSDN:
источник
Для тех из вас, кто столкнулся с этой проблемой при создании контроллера через контекстное меню, повторное открытие Visual Studio от имени администратора исправило ее.
источник
Возможно, использование Where () перед First () может вам помочь, поскольку в этом случае моя проблема была решена.
источник