溫馨提示×

c# nullable 怎樣與LINQ一起用

c#
小樊
126
2024-11-26 10:14:20
欄目: 編程語言

在C#中,null值在泛型類型中可能會導致問題。為了解決這個問題,C#引入了可空引用類型(nullable reference types)??煽找妙愋驮试S你在編譯時檢查null值,從而避免在運行時出現NullReferenceException。

在LINQ查詢中,你可以使用可空引用類型來處理可能為null的值。以下是一些示例,說明如何在LINQ查詢中使用可空引用類型:

  1. 使用?.操作符處理可能為null的對象:
class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { Name = "Alice", Age = 30 },
            new Person { Name = null, Age = 25 },
            new Person { Name = "Bob", Age = 35 }
        };

        var names = people.Select(p => p?.Name).ToList();

        foreach (var name in names)
        {
            Console.WriteLine(name);
        }
    }
}

class Person
{
    public string? Name { get; set; }
    public int Age { get; set; }
}

在這個示例中,我們使用?.操作符來處理可能為nullName屬性。這將確保在結果列表中不包含null值。

  1. 使用??操作符提供默認值:
class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { Name = "Alice", Age = 30 },
            new Person { Name = null, Age = 25 },
            new Person { Name = "Bob", Age = 35 }
        };

        var namesWithFallback = people.Select(p => p.Name ?? "Unknown").ToList();

        foreach (var name in namesWithFallback)
        {
            Console.WriteLine(name);
        }
    }
}

在這個示例中,我們使用??操作符為可能為nullName屬性提供一個默認值(“Unknown”)。這將確保在結果列表中不包含null值,而是包含默認值。

總之,在LINQ查詢中,你可以使用可空引用類型來處理可能為null的值,從而避免運行時錯誤。你可以使用?.操作符來處理可能為null的對象,或使用??操作符提供默認值。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女