我有一个列表。我想从类似元素的每次运行中获取最后一个值。如何从每个类似项目的运行中选择最后一个值?
我的意思是?让我举一个简单的例子。鉴于单词列表
[ '高尔夫球场', '时尚', '跳', '酒店', '草', '世界', '凌晨']
和相似的功能“开始用相同的字母,该函数将返回短名单
[ '高尔夫球场', '酒店', '草', '凌晨']
为什么?原始列表包含1个G字,1个H字,1个G字和2个W字。该函数返回每次运行的最后一个单词。
我该怎么做?
假设C#语法(在现实中我与客户对象工作,但我想分享的东西,你可以运行和测试自己)
> var words = new List<string>{"golf", "hip", "hop", "hotel", "grass", "world", "wee"};
> words.LastDistinct(x => x[0])
["golf", "hotel", "grass", "wee"]
编辑:我试过.GroupBy(x => x[0]).Select(g => g.Last())
但给出['grass', 'hotel','wee']这就是我想要的而不是。仔细阅读示例。
编辑。另一个例子。
〔 '苹果', '军队', '黑', '啤酒', '堡垒', '猫', '购物车', '能够', '艺术', '树皮']
在这里有5次(A的的运行,B的一个运行,C的的运行,A的一个新运行,B的一个新运行)。每次运行的最后一句话是:
[“军队”,“堡垒”,“购物车”,“艺术”,“树皮”]
了解的重要一点是,每个运行是独立的。不要在开始时将A的运行与A的运行混为一谈。
什么是你需要的特定的输出去了? – dbw
所以,你不想仅由第一个字母组成,而是在连续的单词上? –
我希望看到'['hotel','grass','wee']'没有'高尔夫' –