2013-12-05 6 views
1

Я хочу получить список объектов по запросу LINQ. Проблема в том, что мне нужно установить свойства этого объекта, но эти свойства не заданы в его конструкторе.Настройка свойств объекта

categories.Select(c => new { c.catId, c.catName, c.catParent }) 
      .Where(c => c.catParent == id) 
      .AsEnumerable() 
      .Select(c => new CatInfoType()) 
      .ToList(); 

Например, в Select Мне нужно установить общественные свойства CatInfoType экземпляров, как Id, Name и т.д.

ответ

6

Вы можете использовать object initializer

new CatInfoType 
{ 
    PropertyX = 1, 
    PropertyY = 2, 
}; 

или

.Select(c => 
{ 
    var r = new CatInfoType(); 
    r.X = 1; 
    r.Y = 2; 
    return r; 
}) 
0

You либо хотите создать конструктор, который принимает эти аргументы или использует статическую инициализацию что-то вроде;

Select(c => new CatInfoType { 
       Id = c.Id, 
       Name = c.Name 
     };) 

Конструктор маршрута;

// in CatInfoType class 
    public CatInfoType(string name, string id) 
    { 
     Name = name; 
     Id = id; 
    } 

    Select(c => new CatInfoType(c.Name, c.Id)) 
Смежные вопросы