在Linq中传递参数
我在方法中有以下代码:
someData = table.AsEnumerable() .Where(row => row.someRow.Equals("Something")) .Sum(row => row.AnotherRow);
在最后一行,我想从其他地方传入一个参数,它将取代.AnotherRow
换句话说,类似于:
.Sum(row => row. + myParameter);
有任何想法吗? 我在尝试上述操作时遇到错误。 非常感谢任何帮助。
你无法传递代表.AnotherRow
东西,但你可以传递一个从你的对象中选择所需属性的仿函数。
假设table
是IEnumerable
。 然后你可以这样做:
int SumSelected(Func attrSelector) { return table.AsEnumerable() .Where(row => row.someRow.Equals("Something")) .Sum(row => attrSelector(AnotherRow)); }
现在,您可以使用“selector”调用此方法,该“selector”指定要添加的属性,如下所示:
var totalCustomers = SumSelected(obj => obj.CustomerCount); var totalStores = SumSelected(obj => obj.StoreCount);
我认为:
someData = table.AsEnumerable() .Where(row => row.someRow.Equals("Something")) g.Sum(row => Calculate(row => row.AnotherRow, row1 =>row1.AnotherRow));
方法计算:
上述就是C#学习教程:在Linq中传递参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
private double Calculate(double d1, double d2) { return d1 + d2; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1012680.html