技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

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

作者:admin    时间:2023-5-6 11:57:50    浏览:

通常,我们有返回集合的方法。我们预先执行一些验证,然后填充集合并返回它。但是,如果不满足前提条件,我们应该返回什么?

一种选择是返回null值:

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

这通常是一种不好的做法,因为我们现在强制调用代码检查结果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是从方法返回空集合的首选方式,这是因为每次实例化空数组或列表时,它都存储在内存中。这增加了垃圾收集器的压力。但是,当我们使用Array.EmptyEnumerable.Empty创建的空集合只有一个实例时,这是可重用的。这将减少我们应用程序的内存消耗。

相关文章

x
  • 站长推荐
/* 左侧显示文章内容目录 */