如何检查是不是未分配 lambda 表达式? [复制]

Posted

技术标签:

【中文标题】如何检查是不是未分配 lambda 表达式? [复制]【英文标题】:How to check if a lambda expression has not been assigned? [duplicate]如何检查是否未分配 lambda 表达式? [复制] 【发布时间】:2019-02-16 10:12:18 【问题描述】:

我的代码有问题。我正在用 C# 做一个杂乱无章的事情,我想通过 id 找到一个学生。如果您没有找到任何匹配项,我想发送一条消息说没有具有该 ID 的学生。我该怎么做?

我尝试了一个简单的while:

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 时,它告诉我我无法控制异常。

【问题讨论】:

尝试FirstOrDefault 而不是First,您的代码应该可以工作。 【参考方案1】:

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

【讨论】:

【参考方案2】:

您需要使用FirstOrDefault 而不是First

【讨论】:

以上是关于如何检查是不是未分配 lambda 表达式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

分配谓词变量而不是 lambda 表达式

检查 Request.QueryString 中是不是存在未分配的变量

无论如何,是不是可以使用 lambda 自动将新 IP 地址分配给入站规则中的安全组

为啥不能为 Java 中的 var 关键字分配 lambda 表达式?

委托关键字与 lambda 表示法

函数式编程那些事儿