【发布时间】:2013-10-22 13:16:36
【问题描述】:
如何将新属性添加到 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
【问题讨论】:
-
我不认为你可以比选择
new { p, IsMale = true }更好。 -
@MarcinJuraszek 在 linq 中是不可能的吗?
-
你做不到。您不想使用的匿名类型是尽可能获得所需的结果。
-
@SubinJacob 您必须在代码中指定
Person类的所有现有属性,这就是您不想做的事情。您可以尝试使用反射,但我认为这不是一个好主意。而且我在这里没有其他事情可做。 -
您只需要这样做一次还是更频繁地使用这个所需的功能?