所以我正在尝试构建一个函数,它接收一个包含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#很陌生,事实上,我只是刚开始编程的新手,但是我积累的小知识,老实说我不知道该去哪里,任何帮助都会很大
答案 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();