gpt4 book ai didi

c# - 以类型安全的方式使用另一个实例的属性子集创建一个实例?

转载 作者:太空狗 更新时间:2023-10-30 01:21:40 24 4
gpt4 key购买 nike

我有一个数据源,我不想将 X 的集合绑定(bind)到该数据源。 X 应包含特定类型 Y 的属性的子集(假设 Y 具有属性 PropOne、PropTwo、PropThree)这当然可以使用匿名类型来完成:

void DoBind()
{
myGrid.DataSource = myCollectionOfYs.Select(y => new {y.PropOne, y.PropTwo});
}

我如何修改此方法,以便它的调用者可以以类型安全的方式指定要在投影中使用的属性? IE。沿线的东西:

var expressions = new List<Expression<Func<Y, object>>>();
expressions.Add(y => y.PropOne);
expressions.Add(y => y.PropTwo);
DoBind(expressions);

最佳答案

使用你的想法:

void DoBind(Func<Y, object> func)
{
myGrid.DataSource = myCollectionOfYs.Select(funct);
}

然后像这样使用:

DoBind(y => new {y.PropOne});

关于c# - 以类型安全的方式使用另一个实例的属性子集创建一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14897563/

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