如何将新属性添加到Person对象列表并在linq中返回新列表?
List<person> persons = GetPersonList();
其课程如下所示
public class Person
{
public string Name {get;set;}
}
使用linq时我想添加另一个属性(IsMale = true),该属性设置为true。
我不想select new {prop1= p.Name,IsMale=true}
。即我想避免选择所有其他属性来创建这个新属性。这可能吗?
我正在寻找如何用更少的代码来做到这一点。不只是如何!
现在我按照以下方式进行操作
select new {p,IsMale=true}
但在这种情况下,所有旧属性都在p内。 在实际上下文中,Person对象很大,所以我必须避免执行this
答案 0 :(得分:1)
您要求的内容通常是Dynamic Languages的一项功能。在C#中,您列出的选项尽可能好。至少在当前版本中。
答案 1 :(得分:0)
你可以尝试使用带有反射的动态linq来实现这一点。下面显示了一个很好的例子