通过var值填充泛型集合

本文关键字:泛型 集合 填充 var 通过 | 更新日期: 2023-09-27 18:10:45

在我的代码中,我需要帮助将result值放入oList

NorthwindDataContext db = new NorthwindDataContext();
List<Category> oList = new List<Category>();
var result = from p in db.Categories
         select new { CategoryID = p.CategoryID, CategoryName=p.CategoryName };

我想要用结果值填充oList

通过var值填充泛型集合

您的结果没有包含列表中所需的整个对象。因此,您可以执行以下操作。

 NorthwindDataContext db = new NorthwindDataContext();
            List<Category> oList = new List<Category>();
            oList.AddRange(db.Categories);

如果不严格要求添加到列表中,那么您可以简单地将结果集转换为列表,如下所示:

 NorthwindDataContext db = new NorthwindDataContext();
            List<Category> oList = db.Categories.ToList();

但是,您需要知道这是示例代码。像这样拉整张表可能不是最好的做法(除非您知道表中有固定数量的记录不会更改,并且可以安全地将它们全部加载到内存中(

当前结果是一个匿名类型的集合,您希望它返回一个Category。

NorthwindDataContext db = new NorthwindDataContext();
            List<Category> oList = new List<Category>();
            var result = from p in db.Categories
                         select new Category { CategoryID = p.CategoryID, CategoryName=p.CategoryName };

然后您可以将您的类别添加到oList-

oList.AddRange(result.ToList());

编辑:

好吧,假设你只想从数据库中获得几个字段,那么只使用这些字段创建一个新的类型(如果你不需要在方法之外使用它,你就不必这样做,只需将其作为匿名类型(-

class CategorySml
{
  public int CategoryID {get; set;}
  public string CategoryName {get; set;}
}

NorthwindDataContext db = new NorthwindDataContext();
            List<CategorySml> oList = new List<Category>();
            var result = from p in db.Categories
                         select new CategorySml { CategoryID = p.CategoryID, CategoryName=p.CategoryName };
NorthwindDataContext db = new NorthwindDataContext();
        List<Category> oList = db.Categories.ToList();

编辑:

假设Category类是您自己的

NorthwindDataContext db = new NorthwindDataContext();
        List<Category> oList = db.Categories.Select(p => new Category { CategoryID = p.CategoryID, CategoryName=p.CategoryName }).ToList();