根据字母表规则从List中返回元素
本文关键字:返回 元素 List 字母表 规则 | 更新日期: 2023-09-27 18:03:38
所以我试图建立一个函数,接收作为参数的5个元素的列表,这个列表是字符串类型,我之后的结果遵循这个逻辑:
列表:
List<string> lista= new List<string>();
lista.Add("Movel");
lista.Add("ONU");
lista.Add("Pata");
lista.Add("Tela");
lista.Add("Plasticos");
我只需要返回最后一个字母比以下字母顺序的第一个字母高的元素,在本例中,只返回"ONU"answers"Plasticos"。
我对c#相当陌生,事实上,我只是对编程整体陌生,但在我积累的小知识中,我真的不知道该怎么做,任何帮助都将是伟大的
可能有正则表达式的方法可以做到这一点,但你可能可以用某种Linq表达式来做到这一点,例如
IEnumerable<string> temp = from str in lista
let last = str.ToLower().Last()
let first = str.ToLower().First()
where last > first
select str;
我想会给你你想要的答案,但如果你需要一个快速的算法,这可能是一个相当低效的方法。
return lista.Where(s => { s = s.ToLower(); return s[0] < s[s.Length-1] });
尝试:
List<string> listb = lista.FindAll(s => String.Compare(s.Substring(s.Length - 1), s.Substring(0, 1)) == 1).ToList();
我可以想出这个
List<string> filtered = lista.FindAll(s => char.ToLowerInvariant(s[s.Length - 1]) > char.ToLowerInvariant(s[0])).ToList();
我的结果:
var result = lista.Where(x => x.ToLower()[0] < x.ToLower()[x.Length - 1]).ToList();