Общая коллекция заполнить по значению переменной - PullRequest
0 голосов
/ 10 октября 2011

В моем коде мне нужна помощь, чтобы поместить значение 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 заполнить значениями результата.

Ответы [ 3 ]

1 голос
/ 10 октября 2011

Ваш результат содержит не весь объект, который требуется в списке.Вместо этого вы можете сделать следующее:

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

Если добавление в список строго не требуется, вы можете просто преобразовать набор результатов в список следующим образом:

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

Однако вы должны знать, что это пример кода.Вытягивание всей таблицы, как это, вероятно, не лучшая вещь (если вы не знаете, что в таблице будет фиксированное число записей, которые не изменятся, и безопасно загружать их все в память).

0 голосов
/ 10 октября 2011

В настоящее время результат представляет собой коллекцию анонимного типа, вы хотите, чтобы он возвращал вам категорию.

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());

EDIT:

Хорошо, учитывая, что вы хотите получить только несколько полей из базы данных, создайте новый тип только с этими полями (если вам не нужно использовать его вне вашего метода, вам не придется это делать, просто оставьте это как анонимный тип) -

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 };
0 голосов
/ 10 октября 2011
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();
...