#c# #linq
#c# #linq
Вопрос:
Мне нужно прочитать список имен в одной строке, ','
например: John Doe, Johnny Di, ...
Я новичок, поэтому я действительно не знаю, как правильно читать из списка, но это то, что мне удалось собрать
var names = new Listlt;stringgt;(); string name1 = Console.ReadLine(); while (name1 != "") { names.Add(name1); name1 = Console.ReadLine(); } var res = from name in names orderby name.Split(" ")[1] ascending select name;
Комментарии:
1.
var names = Console.ReadLine().Split(',')
?2. Ваш код не читается в списке имен, разделенных запятыми, он читает имена по одному, пока не будет введен пробел.
Ответ №1:
Что — то вроде этого:
var res = Console .ReadLine() .Split(',', StringSplitOptions.TrimEntries) .OrderBy(name =gt; name .Split(' ', StringSplitOptions.RemoveEmptyEntries) .LastOrDefault(), StringComparer.OrdinalIgnoreCase) .ToList(); // .ToArray(); if you want an array
Здесь мы
- Прочитайте вводимые пользователем данные —
Console.ReadLine()
— все имена, разделенные запятыми (напримерJohn Doe, Johnny Di, John Smith
) - Разделите ввод пользователя
,
, обрезая каждый элемент (пусть это будет красиво и допускает пробелы до и после запятых, напримерJohn Smith, Jack Doe
). - Элементы заказа: мы
Split
name
должны получить фамилию.LastOrDefault
для фамилии - Давайте составим список (
Listlt;stringgt;
) в видеres