为了账号安全,请及时绑定邮箱和手机立即绑定

如何将委托与lambda表达式结合使用以对数组中的奇数求和

如何将委托与lambda表达式结合使用以对数组中的奇数求和

C#
慕虎7371278 2021-05-05 14:38:23
假设我有一个数组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));


查看完整回答
反对 回复 2021-05-29
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

使用LINQSum()并检查当前数字是否为奇数:

var oddsSum = nums.Sum(x => x % 2 * x);

或更详细地使用Where()过滤:

var oddsSum = nums.Where(x => x % 2 == 1).Sum();


查看完整回答
反对 回复 2021-05-29
  • 2 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信