вернуть элементы из списка с учетом правила алфавита - PullRequest
2 голосов
/ 26 июля 2011

Итак, я пытаюсь построить функцию, которая получает в качестве параметра список из 5 элементов, этот список имеет строковый тип, и результат, который я получаю, следует следующей логике:

Список:

List<string> lista= new List<string>();

            lista.Add("Movel");
            lista.Add("ONU");
            lista.Add("Pata");
            lista.Add("Tela");
            lista.Add("Plasticos");

Мне нужно вернуть только те элементы, где последняя буква превосходит первую следующую алфавитную последовательность, в этом случае будут возвращены только «ONU» и «Plasticos».

Я довольно новичок в C #, на самом деле, я просто новичок в программировании в целом, но из-за небольших знаний, которые я накопил, я, честно говоря, не знаю, куда идти с этим, любая помощь будет большой .

Ответы [ 5 ]

1 голос
/ 26 июля 2011

Theres, вероятно, regex способы, как вы можете сделать это или что-то, но вы, вероятно, можете сделать это с помощью некоторого выражения Linq, например,

IEnumerable<string> temp = from str in lista
                       let last = str.ToLower().Last()
                       let first = str.ToLower().First()
                       where last > first
                       select str;

Я бы дал вам ответы, которые вы ищете, я думаю, но это, вероятно, довольно неэффективный способ сделать это, если вам нужен быстрый алгоритм.

0 голосов
/ 26 июля 2011

Мой результат:

var result = lista.Where(x => x.ToLower()[0] < x.ToLower()[x.Length - 1]).ToList();
0 голосов
/ 26 июля 2011

Я мог бы придумать это

List<string> filtered = lista.FindAll(s => char.ToLowerInvariant(s[s.Length - 1]) > char.ToLowerInvariant(s[0])).ToList();
0 голосов
/ 26 июля 2011

Попробуйте:

List<string> listb = lista.FindAll(s => String.Compare(s.Substring(s.Length - 1), s.Substring(0, 1)) == 1).ToList();
0 голосов
/ 26 июля 2011
return lista.Where(s => { s = s.ToLower(); return s[0] < s[s.Length-1] });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...