【问题标题】:Linq-to-SQL ToList() With/without records?Linq-to-SQL ToList() 有/没有记录?
【发布时间】:2014-06-24 17:36:42
【问题描述】:

试图在 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更好吗?

【问题讨论】:

    标签: c# sql linq linq-to-sql


    【解决方案1】:

    我希望能够返回填充列表或空列表 - 如果有 0 条记录,我不希望抛出错误。

    您不必检查CountToList 不会返回null,它可能会返回一个空列表,您正试图对您的检查进行此操作。只需data.ToList(); 就足够了。它将返回带有记录的列表或空列表,但不为空。

    你可以这样做:

    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>?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多