技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統(tǒng)
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

[C#技巧]C#返回空集合的正確方法是使用Array.Empty而不是null

作者:admin    時間:2023-5-6 11:57:50    瀏覽:

通常,我們有返回集合的方法。我們預先執(zhí)行一些驗證,然后填充集合并返回它。但是,如果不滿足前提條件,我們應該返回什么?

一種選擇是返回null值:

IEnumerable<Product> GetProductsByCategory(string category)
{
    if (string.IsNullOrWhiteSpace(category))
    {
        return null;
    }
    var products = _dbContext.Products.Where(p => p.Category == category).ToList();
    return products;
}

這通常是一種不好的做法,因為我們現(xiàn)在強制調用代碼檢查結果null

更好的方法是只返回一個空集合:

IEnumerable<Product> GetProductsByCategory(string category)
{
    if (string.IsNullOrWhiteSpace(category))
    {
        return new List<Product>();
    }
    var products = _dbContext.Products.Where(p => p.Category == category).ToList();
    return products;
}

雖然這種方法很好,但我們可以使用更簡潔的方法獲得相同的結果:

IEnumerable<Product> GetProductsByCategory(string category)
{
    if (string.IsNullOrWhiteSpace(category))
    {
        return Enumerable.Empty<Product>();
    }
    var products = _dbContext.Products.Where(p => p.Category == category).ToList();
    return products;
}

使用Array.EmptyEnumerable.Empty是從方法返回空集合的首選方式,這是因為每次實例化空數(shù)組或列表時,它都存儲在內存中。這增加了垃圾收集器的壓力。但是,當我們使用Array.EmptyEnumerable.Empty創(chuàng)建的空集合只有一個實例時,這是可重用的。這將減少我們應用程序的內存消耗。

相關文章

x