假设我有一个数组int[] nums = new int[]{2, 4, 5, 7, 9, 8}如何将委托与lambda表达式结合使用以对数组中的奇数求和?我可以使用带有条件的 for 循环来检查数字是否为奇数并轻松求和。只是想知道是否有任何方法可以使用委托和lambda表达式来缩短代码。谢谢
2 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
var nums = new int[] {1, 2, 3, 4, 5};
var sum = nums.Sum(delegate(int i) { return i % 2 == 0 ? 0 : i; });
我相信这是您的要求。除非要在lambda部分之外创建委托方法,否则可以执行以下操作:
var nums = new int[] {1, 2, 3, 4, 5};
var del = new Func<int,int>((i) => i % 2 == 0 ? 0 : i);
var sum = nums.Sum(i => del(i));
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
使用LINQSum()
并检查当前数字是否为奇数:
var oddsSum = nums.Sum(x => x % 2 * x);
或更详细地使用Where()
过滤:
var oddsSum = nums.Where(x => x % 2 == 1).Sum();
- 2 回答
- 0 关注
- 191 浏览
添加回答
举报
0/150
提交
取消