C# 获取值并索引数组中的第一个低值

C# 获取值并索引数组中的第一个低值,c#,linq,C#,Linq,我需要找到数组中的三个最小值,并跟踪它们的索引。但在我的代码中,我只看到索引。你对如何解决这个问题有什么建议吗 static void Main() { int[] array = new int[] { 4, -2, 17, 8, -3, 7, 0, 1, 5, -12, -11, -4, 9 }; var topThree = array.OrderBy(i => i).Take(3).ToArray(); var topThreeIndex = array.S

我需要找到数组中的三个最小值,并跟踪它们的索引。但在我的代码中,我只看到索引。你对如何解决这个问题有什么建议吗

static void Main()
{
    int[] array = new int[] { 4, -2, 17, 8, -3, 7, 0, 1, 5, -12, -11, -4, 9 };
    var topThree = array.OrderBy(i => i).Take(3).ToArray();
    var topThreeIndex = array.Select((v, i) => new { Index = i, Value = v })
                    .Where(p => Array.IndexOf(topThree, (int)p.Value) != -1)
                    .Select(p => p.Index);
    foreach (var x in topThreeIndex)
    {
        Console.WriteLine("The number is :"+??+" , index is: "+x);
    }
}

ToList
call是多余的老实说,这行代码很简洁,而且很管用,但是像这样敲打几个LINQ语句真的有助于操作吗?你可以包括一些有用的链接来描述LINQ关键字,和/或向他展示一种老式的比较方式。
ToList
call是多余的老实说,这行代码很简洁,很有技巧,但是像这样敲打一些LINQ语句真的有助于操作吗?你可以包括一些有用的链接来描述LINQ关键字,和/或向他展示一种老式的比较方式。
ToList
call是多余的老实说,这行代码很简洁,很有技巧,但是像这样敲打一些LINQ语句真的有助于操作吗?你可以包括一些有用的链接来描述LINQ关键字,和/或向他展示一种老式的比较方式。
ToList
call是多余的老实说,这行代码很简洁,很有技巧,但是像这样敲打一些LINQ语句真的有助于操作吗?你可以包括一些有用的链接来描述LINQ关键词,和/或向他展示一种老式的方式来进行比较。
var topThreeIndex = array.Select((v, i) => new { Index = i, Value = v })
                         .OrderBy(e => e.Value)
                         .Take(3);

foreach (var x in topThreeIndex)
{
    Console.WriteLine("The number is: " + x.Value + " , index is: " + x.Index)
}