SingleOrDefault() trả về phần tử duy nhất của chuỗi, hoặc giá trị mặc định (null cho reference type, 0 cho numeric) nếu chuỗi rỗng. Ném ngoại lệ nếu chuỗi có >1 phần tử.
Ví dụ minh họa
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
string[] str1 = { "one" };
string[] str2 = { };
string res1 = str1.AsQueryable().Single();
Console.WriteLine("Chuỗi tìm thấy: " + res1);
string res2 = str2.AsQueryable().SingleOrDefault();
Console.WriteLine(string.IsNullOrEmpty(res2) ? "Không tìm thấy chuỗi" : res2);
}
}
Kết quả đầu ra
Chuỗi tìm thấy: one Không tìm thấy chuỗi
So sánh:
Single(): yêu cầu chính xác 1 phần tử, ném ngoại lệ nếu 0 hoặc >1SingleOrDefault(): trả về default nếu 0 phần tử, ném ngoại lệ nếu >1FirstOrDefault(): trả về phần tử đầu hoặc default, không quan tâm số lượng phần tử