0

如何将新属性添加到 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 对象很大,所以我必须避免这样

4

2 回答 2

1

您所要求的通常是Dynamic Languages的一项功能。在 C# 中,您列出的选项与它一样好。至少在当前版本中。

于 2013-10-22T05:08:40.550 回答
0

您可以尝试使用带反射的动态 linq 来实现这一点。一个很好的例子如下所示

动态创建新的 PropertyInfo 对象

于 2013-10-22T05:16:36.990 回答