從多個方面詳述FirstOrDefault用法

一、基本介紹

FirstOrDefault是IEnumerable介面中的一個方法,用於返回序列中的第一個元素,如果序列為空,則返回默認值。使用linq語法時,可以使用條件表達式篩選第一個元素。

首先,我們需要引用System.Linq命名空間,使用linq語法進行篩選,例如:

using System.Linq;
IEnumerable&ltint&gt numbers = Enumerable.Range(1, 5);
int firstNumber = numbers.FirstOrDefault();

上述代碼將返回集合中的第一個元素,即數字1。如果集合為空,則返回類型的默認值,int類型默認值為0。

二、篩選指定元素

我們可以使用條件表達式從序列中篩選指定的元素。例如,對於一個Person的類:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
List&ltPerson&gt people = new List&ltPerson&gt()
{
    new Person() { Name = "Amy", Age = 24 },
    new Person() { Name = "Bob", Age = 29 },
    new Person() { Name = "Chris", Age = 22 },
    new Person() { Name = "David", Age = 27 }
};
Person firstPerson = people.FirstOrDefault(p =&gt p.Age &gt= 25);
Console.WriteLine(firstPerson.Name);

上述代碼將篩選年齡大於等於25歲的人,並返回第一個匹配的元素,即Bob。

三、返回指定類型的默認值

我們可以使用FirstOrDefault方法返回與指定類型相同的默認值,而不是序列的第一個元素。例如,對於bool類型:

bool[] values = new bool[] { };
bool firstValue = values.FirstOrDefault();
Console.WriteLine(firstValue); // 輸出:False

上述代碼將返回布爾類型的默認值,即false,因為值數組為空。

四、應用於字典類型

我們可以使用FirstOrDefault方法查找字典中的指定鍵值對。例如,對於一個字典:

Dictionary&ltstring, int&gt dict = new Dictionary&ltstring, int&gt()
{
    { "A", 1 },
    { "B", 2 },
    { "C", 3 }
};
KeyValuePair&ltstring, int&gt firstItem = dict.FirstOrDefault(item =&gt item.Key == "B");
Console.WriteLine(firstItem.Value); // 輸出:2

上述代碼將返回鍵為B的值2,即查找字典中滿足條件的第一個鍵值對。

五、使用默認值返回類型

在某些情況下,返回值可能是null,但我們需要返回類型的默認值。我們可以使用Elvis運算符和默認值合併運算符來解決這個問題。例如:

Person firstPerson = people.FirstOrDefault(p =&gt p.Name == "Eva");
string firstName = firstPerson?.Name ?? "No Person Found";
Console.WriteLine(firstName);

上述代碼將返回第一個名字為Eva的人,如果不存在,則返回”No Person Found”。

原創文章,作者:UKANX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372369.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UKANX的頭像UKANX
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相關推薦

發表回復

登錄後才能評論