gpt4 book ai didi

c# - LINQ:将某些对象属性选择到同一对象中

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:33 24 4
gpt4 key购买 nike

如果我有一个具有许多属性的对象 A,我只需要其中的几个属性,我可以通过不传输不必要的数据来提高性能,即只选择我需要的对象属性到一个新类型 B 中,无论是命名的还是匿名的.

现在想象一下,我想将那些原始对象 A 的列表绑定(bind)到一个 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 信息的开销,尽管我没有为它的所有属性传输数据。

亚历克斯

最佳答案

实际上,我认为性能不会提高多少,因为 Select 语句将遍历您的所有列表并为您创建一个新的对象列表。但是如果你有你不使用的引用属性。您可以在那里保存。

如果向 UI 显示数据时没有复杂的逻辑。为什么不保持模型原样。

关于c# - LINQ:将某些对象属性选择到同一对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com