Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức SingleOrDefault() trong C# LINQ

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 >1
  • SingleOrDefault(): trả về default nếu 0 phần tử, ném ngoại lệ nếu >1
  • FirstOrDefault(): trả về phần tử đầu hoặc default, không quan tâm số lượng phần tử