2016-04-17 3 views
-2

Мне нужно объединить два списка и отсортировать их, но не понимаю смысла ошибки, которую я получаю при попытке отсортировать мой новый объединенный список. «не может неявно преобразовать тип« void »в« System.Collections.Generic.List ». Это ошибка, которую я получаю на result.Sort();Слияние двух списков, за которыми следует сортировка объединенного списка

  List<int> listOne = new List<int> { 1, 3, 5, 7, 9 }; 
     List<int> listTwo = new List<int> { 2, 4, 6, 8, 10 }; 
     List<int> result = listOne.Union(listTwo).ToList(); 

     List<int> sorted = result.Sort(); 

     foreach (var i in sorted) { 
      Console.WriteLine(i); 
     } 
     Console.ReadLine(); 
+0

'Sort()' метод является метод 'List's. и ничего не возвращается. Только влияет на указанный список. Для большей производительности это лучший способ. –

+0

Похоже, вы хотите [Enumerable.OrderBy Method] (https://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby%28v=vs.100%29.aspx). –

ответ

1

функция сортировки является функцией, изменение списка, что функция называется на (не возвращает список сортировки, но изменить список). Таким образом, в вашем примере вы должны:

result.Sort(); 

foreach (var i in result) 
{ 
    Console.WriteLine(i); 
} 

Console.ReadLine(); 
+0

ahh, что на 100% больше смысла после того, как он объяснил это. Я не знаю, почему я пытался создать новый список, чтобы показать конечный результат в первую очередь, спасибо большое! – user3485895

3

Проблема в том, что result.Sort() метод ничего не возвращает. Он просто сортирует существующий список result. Так что код должен быть

result.Sort(); 

foreach (var i in result) 
{ 
    Console.WriteLine(i); 
} 
Смежные вопросы