gpt4 book ai didi

c# - LINQ 改变本地 "let"变量

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:19 24 4
gpt4 key购买 nike

使用 LINQ 查询(使用 C#)我将如何做这样的事情(伪代码)?

我希望在某些地方做这样的事情,例如,我可能会生成 1000 个随机(有界)整数的列表,我想在它们生成时跟踪它们中的最小值。

Best <- null value 

Foreach N in Iterations
NewList <- List of 100 randomly generated numbers
If Best is null
Best <- NewList

If Sum(NewList) < Sum(Best)
Best <- NewList

Select Best

我试过各种各样的东西,但我真的不能让它工作。这不是针对任何类型的项目或工作,只是出于我自己的好奇心!

我的想法的例子:

let R = new Random()   
let Best = Enumerable.Range(0, 100).Select(S => R.Next(-100, 100)).ToArray()

//Where this from clause is acting like a for loop
from N in Iterations
let NewList = Enumerable.Range(0, 100).Select(S => R.Next(-100, 100))
Best = (NewList.Sum() < Best.Sum())? NewList : Best;

select Best

最佳答案

我相信您正在寻找fold (又名“减少”),称为 Aggregate在 LINQ 中。

(IEnumerable.Min/Max 是特例,但可以写成 fold/Aggregate。)

int Max (IEnumerable<int> x) {
return x.Aggregate(int.MinValue, (prev, cur) => prev > cur ? prev : cur);
}
Max(new int[] { 1, 42, 2, 3 }); // 42

快乐编码。

关于c# - LINQ 改变本地 "let"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com