查找列表中最大元素的所有索引

p

我有以下内容:

List<decimal> results = new List<decimal>();

...

result.Add(...);

...

Console.WriteLine($"Maximum gain: {gains.Max():f6} (#{results.IndexOf(gains.Max()) + 1})");
Console.WriteLine($"Maximum loss: {Math.Abs(losses.Min()):f6} (#{results.IndexOf(losses.Min()) + 1})");

IndexOf仅查找第一个索引。如果有多个索引,我想显示所有索引。

具有多个最大索引的示例:

Maximum gain: 0.000700 (#15, #44)

具有一个索引的示例:

Maximum gain: 0.000700 (#13)
朱哈尔

首先,我将最大值拉到一个变量中,该变量可用于将获得索引的Linq查询中。然后使用它创建一个格式化的字符串列表,以在输出到控制台的字符串中使用。

var maxGain = gains.Max();
var maxIndexes = string.Join(
    ", ", 
    results.Select((r,i) => new { Result = r, Index = i })
        .Where(x => x.Result == maxGain)
        .Select(x => $"#{x.Index +1}"));

Console.WriteLine($"Maximum gain: {maxGain:f6} ({maxIndexes})");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章