如何检查是否未分配Lambda表达式?

时间:2019-02-16 10:12:18

标签: c# .net

我的代码有问题。我正在使用C#进行调试,并且正在尝试通过id查找学生。如果找不到任何匹配项,我想发送一条消息说没有那个ID的学生。我该怎么办?

我尝试了一个简单的时间:

while(i < count && !found)
{
    s = studentList[i];
    if (id.Equals(s.IdStudent))
    {
        found = true;
        student = s;
    }
    i++;
}

if (found == false)
{
    System.Console.WriteLine("There is no match");
}

我正在尝试:

student = studentList.First(i => i.IdStudent == id);
if(student == null)
{
    System.Console.WriteLine("There is no match");
}

这似乎很好,但是当执行和使用不在列表中的ID时,它告诉我我无法控制该异常。

2 个答案:

答案 0 :(得分:1)

如果使用“第一”,则期望序列中至少有一个元素。使用FirstOrDefault适合您的情况。

答案 1 :(得分:1)

您需要使用FirstOrDefault而不是First