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