关于c#:如何检查是否尚未分配lambda表达式?

How to check if a lambda expression has not been assigned?

本问题已经有最佳答案,请猛点这里访问。

我的代码有问题。我在用C做一个积垢,我想按身份证找到一个学生。如果你找不到任何匹配的学生,我想发一条消息说没有学生有这个身份证。我怎么能做到?

我试了一段时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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");
}

我正在尝试:

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

这看起来很好,但是当执行和使用一个不在列表中的ID时,它告诉我不控制异常。


您需要使用FirstOrDefault,而不是First


如果首先使用,则期望序列中至少有一个元素。使用first或default对您的案件应该是可以的。