根据字母表规则从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#相当陌生,事实上,我只是对编程整体陌生,但在我积累的小知识中,我真的不知道该怎么做,任何帮助都将是伟大的

根据字母表规则从List中返回元素

可能有正则表达式的方法可以做到这一点,但你可能可以用某种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();