"FirstOrDefault "方法是如何在C#编程中使用的?

489 阅读6分钟

在C#编程中,我们使用FirstOrDefault方法来获得列表、序列或数组的第一个或默认元素。如果数组或列表或任何序列包含元素,我们就会得到它的第一个元素。如果你在数组或列表中找不到一个元素,它将返回默认值。如果序列、列表或数组是空的,它不会抛出一个异常。如果序列是空的,它返回默认值。它可以处理空值。本指南将演示不同的例子,在这些例子中我们使用 "FirstOrDefault "方法来获取第一个或默认值。我们将在Ubuntu 20.04中进行说明。

例子#1

这里,我们有一个使用 "FirstOrDefault "方法的例子。你将在这个例子中检查这个方法在C#编程中是如何工作的。在这个例子中我们将打印两个值。序列的第一个值包含数值,也包含空序列的默认值。我们必须用".cs "文件扩展名来保存我们的C#程序文件。我们可以用我们选择的任何文件名来保存文件,但必须有一个".cs "文件扩展名。

在C#编程中,我们必须用C#库开始我们的代码,这里是 "使用系统"。在这个C#库的帮助下,我们可以访问像 "Console "类和 "WriteLine "函数这样的类。在使用这个C#库之后,我们有了 "System.Linq",我们在C#程序中使用它,为我们提供了支持LINQ查询的各种类和方法。我们还有一个 "System.Collections.Generic "命名空间,它在这里用于接口和类。它提供了良好的性能。

然后我们有一个类,在这个C#代码中,这个类的名字是 "Program"。创建完这个类后,我们要调用 "main "函数。我们通过使用语句 "static public void Main () "来调用我们的 "main "函数。现在,我们要形成一个名为 "seq1 "的数组。这个数组是整数的数据类型。我们可以向这个数组传递整数。我们在这个整数数组中存储不同的整数值。我们将 "122, 33, 55, 77, 243, 65 "存储在这个 "seq1 "的数组中。我们还声明了一个名为 "result1 "的变量 "var",并用 "FirstOrDefault "方法初始化它。我们在 "seq1 "中使用这个方法来获取序列小于 "77 "的 "seq1 "的值。

FirstOrDefault方法将检查小于 "77 "的 "seq1 "的值,并给出第一个值作为结果,并将这个值存储在 "var result1 "中。我们可以把这个条件写成"(sequence => sequence < 77)"。seq1.FirstOrDefault "意味着我们对 "seq1 "应用这个方法。我们使用 "Console.WriteLine() "语句来打印这个 "result1 "值。我们创建另一个数组,名称为 "seq2",同样是整数数据类型。但是这一次,数组是空的。我们不在这个 "seq2 "中保存任何值。这个 "seq2 "在这里是空的,所以我们可以在使用 "FirstOrDefault "方法时得到默认值。这不会在这里抛出一个异常。

我们在这里声明一个名为 "result2 "的新变量,它显示了这个 "seq2 "的结果。我们用 "seq2.FirstOrDefault "方法初始化这个 "result2",但在这种情况下,"seq2 "是空的,所以它将在 "result2 "中存储默认值。在这之后,我们通过使用相同的函数 "Console.WriteLine "来打印这个 "result2"。

我们还为你提供了这段代码的输出,以了解这段代码的工作原理。由于我们是在Ubuntu 20.04下执行这些例子,所以当我们想在Ubuntu 20.04下获得输出时,我们必须在这里使用一些命令。我们有两个命令来获取输出。一个是用于编译的 "mcs "命令,另一个是用于执行C#代码的 "mono "命令。"mcs "命令是编译命令,所以我们使用".cs "扩展名。

输出显示,它打印了 "seq1 "的第一个值,它小于 "77",以及 "seq2 "的默认值,因为 "seq2 "是空的。这里 "seq2 "的默认值是 "0",它在终端屏幕上打印了 "0"。因为我们使用了 "FirstOrDefault "方法,所以它并没有抛出一个异常。

例子 # 2

现在,在这里探讨另一个例子。我们将设置一些条件并在这个例子中使用 "FirstOrDefault "方法。

第一条语句是 "using System",这意味着我们使用C#库。然后我们有 "System.Linq "和 "System.Collections.Generic",我们在第一个例子中讨论过。在这个C#代码中,我们有一个名为 "Demo "的类,并在其中调用我们的 "main "方法。我们将在这段代码中创建四个不同的列表。首先,我们创建一个名为 "List1 "的整数列表,并在这个 "List1 "中存储一些整数数据。这里 "int "代表整数数据类型。我们将 "8、11、22、37、58、97 "存储到这个第一个整数列表 "List1 "中。

在这第一个列表之后,我们创建另一个名为 "List2 "的列表,这个 "List2 "是 "字符串 "的数据类型。我们将 "字符串 "数据存储在这个 "List2 "中。我们在 "List2 "中存储 "Apple"、"Orange "和 "Banana"。第三个列表名为 "List3",这个 "List3 "也是 "字符串 "的数据类型。我们将第一个元素 "null "和其他字符串元素 "one"、"two "和 "three "存储在这个 "List3 "中。在这三个列表之后,我们创建最后一个字符串列表,命名为 "List4",这是一个空列表。我们使用 "FirstOrDefault "方法获得 "List1 "的第一个元素,并使用 "Console.WriteLine "打印这个值。

我们将在 "FirstOrDefault "方法中对这个 "List1 "应用一个条件。我们编写的条件是,当它除以2时,它得到的值的余数是 "0",所以,这个值是偶数。FirstOrDefault "方法存储第一个值,这个值在 "List1 "中是偶数。以同样的方式,我们使用 "FirstOrDefault "得到 "List2 "的第一个字符串。我们对 "List3 "和 "List4 "也使用这个 "FirstOrDefault "方法。输出显示了这个 "FirstOrDefault "方法是如何获得第一个或默认值或字符串的。

在第一行,它打印了 "List1 "的第一个值。在这之后,它打印了同一个列表 "List1 "的偶数值。下一行在第一个值的位置上没有打印任何东西,因为 "List3 "的第一个元素是 "null"。正如你所知,我们的最后一个列表是空的,所以 "List4 "的第一个值也是空的。没有例外,因为 "FirstOrDefault "方法可以处理空列表或 "空 "值。

总结

我们为你提供了这个指南,让你轻松地了解 "FirstOrDefault "方法是如何在Ubuntu 20.04的C#编程中使用的。在本指南中,我们详细解释了这个方法,并探讨了使用这个方法的例子,向你展示了这个方法如何处理 "空 "值和空列表或数组。这个方法不会对空值或空元素抛出一个异常。我们已经解释了代码,也给出了代码。我们把输出结果粘贴到本指南中,所以你很容易从本指南中了解这个方法。我希望你能从本指南中学习并在你的C#程序中使用这个概念。