【发布时间】:2016-07-01 23:29:14
【问题描述】:
如果我有一个具有许多属性的对象 A,而我只需要其中几个属性,我可以通过不传输不必要的数据来提高性能,即只选择我需要的对象属性到一个新类型 B 中,无论是命名的还是匿名的.
现在想象一下,我想将这些原始对象 A 的列表绑定到一个 datagridview,它只显示我想要的几个属性。我使用原始对象 A 的属性名称创建了 datagridview 列,并将其数据源类型设置为 typeof(A)。我想知道,如果我可以选择同一个对象 A 只是省略我不需要的属性,即
public class MyObject
{
public string prop1 { get; set; }
public string prop2 { get; set; }
.....
public string propN { get; set; }
}
var list = context.MyObject
.Select(n => new MyObject { prop1 = n.prop1, prop2 = n.prop2 }).ToList();
通过这种方式,我不需要定义新类型,无论是命名的还是匿名的。问题是,我是否在性能上有所收获,或者我仍然有原始大对象 A 信息的开销,尽管我没有传输其所有属性的数据。
亚历克斯
【问题讨论】:
-
谢谢大家的回答。
标签: c# performance linq