设置对象的属性

时间:2013-12-05 19:45:11

标签: c# linq

我想通过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等。

2 个答案:

答案 0 :(得分:6)

您可以使用object initializer

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

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

答案 1 :(得分:0)

您要么创建一个构造函数来获取这些参数,要么使用静态初始化来表示类似的内容;

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