How do I get the index of the highest value in an array using LINQ?

前端 未结 9 2155
死守一世寂寞
死守一世寂寞 2020-11-27 18:46

I have an array of doubles and I want the index of the highest value. These are the solutions that I\'ve come up with so far but I think that there must be a more elegant so

9条回答
  •  孤独总比滥情好
    2020-11-27 19:11

    The worst possible complexity of this is O(2N) ~= O(N), but it needs to enumerate the collection two times.

     void Main()
    {
        IEnumerable numbers = new int[] { 1, 2, 3, 4, 5 };
    
        int max = numbers.Max ();
        int index = -1;
        numbers.Any (number => { index++; return number == max;  });
    
        if(index != 4) {
            throw new Exception("The result should have been 4, but " + index + " was found.");
        }
    
        "Simple test successful.".Dump();
    }
    

提交回复
热议问题