考虑字母规则从List返回元素

时间:2011-07-26 10:52:52

标签: c# visual-studio-2010

所以我正在尝试构建一个函数,它接收一个包含5个元素的List的参数,这个列表是字符串类型,而我所遵循的结果遵循这个逻辑:

列表:

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 个答案:

答案 0 :(得分:1)

Theres可能正则表达你可以做到这一点或某事的方法,但你可以用某种Linq表达式做到这一点,例如。

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

会给你你想到的答案,但如果你需要一个快速的算法,这可能是一种非常低效的方法。

答案 1 :(得分:0)

return lista.Where(s => { s = s.ToLower(); return s[0] < s[s.Length-1] });

答案 2 :(得分:0)

尝试:

List<string> listb = lista.FindAll(s => String.Compare(s.Substring(s.Length - 1), s.Substring(0, 1)) == 1).ToList();

答案 3 :(得分:0)

我能想出这个

List<string> filtered = lista.FindAll(s => char.ToLowerInvariant(s[s.Length - 1]) > char.ToLowerInvariant(s[0])).ToList();

答案 4 :(得分:0)

我的结果:

var result = lista.Where(x => x.ToLower()[0] < x.ToLower()[x.Length - 1]).ToList();