Получение наибольшего доступного номера в списке <string> - PullRequest
3 голосов
/ 27 ноября 2011

У меня есть следующие строки в List<string>

vs0, vs1, vs2, vs3, vs4, vs5, ... vs (n)

В моем списке они не отсортированы и являются случайными. Я хочу получить строку с самым высоким значением int. А затем выведите число из этой строки в int var.

Какой самый лучший и быстрый способ сделать это?

Ответы [ 6 ]

8 голосов
/ 27 ноября 2011
var max = myList.OrderByDescending(v => int.Parse(v.Substring(2))).First();

или если вам нужен самый высокий int

var max = myList.Select(v => int.Parse(v.Substring(2))).Max();
2 голосов
/ 27 ноября 2011
 var result = List.Max(p => int.Parse(p.Substring(2)));
1 голос
/ 27 ноября 2011

Как насчет LINQ:

List<string> strings = ...
int max = strings.Max(item => int.Parse(item.Substring(2)));
0 голосов
/ 27 ноября 2011

l.Select(s => int.Parse(s.Substring(2))).Max()

Возможно, вы захотите создать отдельный список int с, если вы планируете делать это более одного раза

0 голосов
/ 27 ноября 2011
var max = yourList.Select(s => int.Parse(s.Substring(2)).Max();
0 голосов
/ 27 ноября 2011

Возможно, просто l.Select(Convert.ToInt32).Max()?


В соответствии с предложением Джима, необходимо убрать 2 ведущих символа:

l.Max(s => Convert.ToInt32(s.Substring(2)))

(но этот практически такой же, как и другие ответы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...