gpt4 book ai didi

c# - .NET C# 设置由 lambda 选择器定义的字段的值

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:34 25 4
gpt4 key购买 nike

我有一个通用类 HierarchicalBusinessObject。在类的构造函数中,我将定义选择器的 lambda 表达式传递给 TModel 的字段。

protected HierarchicalBusinessObject
(Expression<Func<TModel,string>> parentSelector)

调用看起来像这样,例如:

public class WorkitemBusinessObject : 
HierarchicalBusinessObject<Workitem,WorkitemDataContext>
{
public WorkitemBusinessObject()
: base(w => w.SuperWorkitem, w => w.TopLevel == true)
{ }
}

我可以使用选择器在类里面阅读。例如:

sourceList.Select(_parentSelector.Compile()).Where(...

现在我问自己如何使用选择器为字段设置值。就像是selector.Body() .... 字段...

最佳答案

我不太清楚你为什么要传递一个表达式<>。您可以只传递 Func 作为选择器和 Action 来为属性设置值:


protected HierarchicalBusinessObject(Action<TModel,string> parentSetter);

public class WorkitemBusinessObject :
HierarchicalBusinessObject
{
public WorkitemBusinessObject()
: base( (WorkItem w, string s) => {w.Name = s;})
{ }
}

然后像这样使用它:


sourceList.ForEach(w => _parentSetter(w, "NewName"));

关于c# - .NET C# 设置由 lambda 选择器定义的字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651211/

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