如何从元组数组中获取具有最大第二个元素的元组?(C#)

如何从元组数组中获取具有最大第二个元素的元组?(C#),c#,linq,C#,Linq,我有一个元组数组,希望得到一个包含max second元素的元组,而不包含for cycles。我认为应该是一些linq声明或类似的东西: var a = new Tuple<string, int>[n]; // *initializing* Tuple<string, int> mx = a.Max(t => t.Item2); var a=新元组[n]; //*初始化* 元组mx=a.Max(t=>t.Item2); 此外,它应该具有O(n)复杂度如

我有一个元组数组,希望得到一个包含max second元素的元组,而不包含for cycles。我认为应该是一些linq声明或类似的东西:

var a = new Tuple<string, int>[n];

// *initializing*

Tuple<string, int> mx = a.Max(t => t.Item2);

var a=新元组[n];
//*初始化*
元组mx=a.Max(t=>t.Item2);

此外,它应该具有O(n)复杂度

如果按排序约束排序,则可以得到第一项

    // Populate a Sample
    var a = new Tuple<string, int>[10];
    for(int i = 0; i <= 9; i++)
    {
        var t = new Tuple<string, int>(i.ToString(), i);
        a[i] = t;
    }
    
    // Get First Item with Highest Value
    Console.WriteLine(a.OrderByDescending(c => c.Item2).First());
//填充一个示例
var a=新元组[10];
对于(int i=0;i c.Item2).First());

谢谢您的建议,但排序比搜索慢在常见情况下您的示例中有一个由10个元素组成的数组…因此性能影响是不相关的您是对的,好的,我澄清了这是否回答了您的问题?或者你可以使用MoreLINQ的MaxBy函数是的,这正是我搜索的,谢谢。写一个for循环要比写一个问题快得多,更不用说等待一个库的答案了。这个库做的事情完全一样。好吧,我只是好奇地想知道,谢谢你指出一个明显的事实:)