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

假设我有一个数组

int[] nums = new int[]{2, 4, 5, 7, 9, 8}

如何将委托与lambda表达式结合使用以对数组中的奇数求和?我可以使用带有条件的 for 循环来检查数字是否为奇数并轻松求和。只是想知道是否有任何方法可以使用委托和lambda表达式来缩短代码。

谢谢


慕虎7371278
浏览 180回答 2
2回答

ibeautiful

&nbsp; &nbsp; &nbsp;var nums = new int[] {1, 2, 3, 4, 5};&nbsp; &nbsp; &nbsp; &nbsp; var sum = nums.Sum(delegate(int i) { return i % 2 == 0 ? 0 : i; });我相信这是您的要求。除非要在lambda部分之外创建委托方法,否则可以执行以下操作:&nbsp; &nbsp; &nbsp; &nbsp; var nums = new int[] {1, 2, 3, 4, 5};&nbsp; &nbsp; &nbsp; &nbsp; var del = new Func<int,int>((i) => i % 2 == 0 ? 0 : i);&nbsp; &nbsp; &nbsp; &nbsp; var sum = nums.Sum(i => del(i));

小怪兽爱吃肉

使用LINQSum()并检查当前数字是否为奇数:var&nbsp;oddsSum&nbsp;=&nbsp;nums.Sum(x&nbsp;=>&nbsp;x&nbsp;%&nbsp;2&nbsp;*&nbsp;x);或更详细地使用Where()过滤:var&nbsp;oddsSum&nbsp;=&nbsp;nums.Where(x&nbsp;=>&nbsp;x&nbsp;%&nbsp;2&nbsp;==&nbsp;1).Sum();
打开App,查看更多内容
随时随地看视频慕课网APP