试图在SO上查找这个问题,但无法找到它。
从静态方法返回记录列表的最佳方法是什么?
我想从静态方法返回空列表或填充列表。
考虑以下方法:
public static List<division> GetAllDivisions(bool isAvailable)
{
MyDataContext db = new MyDataContext ();
List<division> DivisionList = new List<division>();
var data = from d in db.divisions
where d.isAvailable == isAvailable
select d;
if(data.Count() > 0)
DivisionList = data.ToList();
return DivisionList;
}
我真的需要做以下事情吗?
if(data.Count() > 0)
DivisionList = data.ToList();
我可以在不查看计数的情况下执行DivisionList = data.ToList()
吗?
我希望能够返回填充列表或空列表 - 如果有0条记录,我不想要抛出错误。
最佳做法是什么?返回IEnumerable
是否更好?
答案 0 :(得分:2)
我希望能够返回填充列表或空列表 - 如果有0条记录,我不想抛出错误。
您不必检查Count
,ToList
不会返回null
,它可能会返回一个空列表,您尝试对此进行检查。只需data.ToList();
即可。它将返回带有记录或空列表的列表,但不是null。
你可以这样做:
public static List<division> GetAllDivisions(bool isAvailable)
{
MyDataContext db = new MyDataContext();
return db.divisions
.Where(d => d.isAvailable == isAvailable)
.ToList();
}
有关
返回IEnumerable是否更好?
请参阅:Should I always return IEnumerable<T> instead of IList<T>?