Как работает Tuple в LINQ?
решал вот такое вот задание по сортировке, смысл в том, что дан список слов, нужно найти самое длинное слово из этого списка, а из всех самых длинных — лексикографически первое слово.
Задание я решил, но не совсем пониманию, как Tuple отрабатывает с LINQ и почему сложность такой конструкции O(N) в отличии от сортировки O( N * logN)
Можете рассказать как это происходит поподробнее или дать ссылку статью/книгу, где это было бы разъяснено?
public static void Main()
{
Console.WriteLine(GetLongest(new[] { "azaz", "as", "sdsd" }));
Console.WriteLine(GetLongest(new[] { "zzzz", "as", "sdsd" }));
Console.WriteLine(GetLongest(new[] { "as", "12345", "as", "sds" }));
Console.ReadKey();
}
public static string GetLongest(IEnumerable<string> words)
{
return words.Min(w => (-w.Length, w)).w;
}