[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.Empty
和Enumerable.Empty
是从方法返回空集合的首选方式,这是因为每次实例化空数组或列表时,它都存储在内存中。这增加了垃圾收集器的压力。但是,当我们使用Array.Empty
或Enumerable.Empty
创建的空集合只有一个实例时,这是可重用的。这将减少我们应用程序的内存消耗。
相关文章
相关文章
x
- 站长推荐