使用匿名方法填充对象初始值设定项中的属性
假设 sr 是一个 IEnumerablesr.Lines()< 中的两项进行内联计算/代码>。问题是 lambda 的类型是“lambda 表达式”,而不是 Decimal,这是共享的。有没有办法在对象初始值设定项中执行这种类型的内联方法?
var trades =
from line in sr.Lines()
let items = line.Split('|')
select new Trade
{
Total = () => {
return Convert.ToDecimal(items[1]) + Convert.ToDecimal(items[2]);
},
Name = items[3]
}
Assuming sr
is an IEnumerable<string>
, I want to use code like this to do an inline calculation using two of the items from sr.Lines()
. The problem is that the lambda is of type "lambda expression" and not a Decimal, which shares is expecting. Is there any way to do this type of inline method in an object initializer?
var trades =
from line in sr.Lines()
let items = line.Split('|')
select new Trade
{
Total = () => {
return Convert.ToDecimal(items[1]) + Convert.ToDecimal(items[2]);
},
Name = items[3]
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要一个十进制表达式,而不是一个函数:
You want a decimal expression, not a function:
以防万一其他人像我一样最终在这里寻找解决方案。
检查如何在 C# 中调用匿名函数?。
Just in case someone else ends up here looking for a solution like I did.
Check How to call anonymous function in C#?.