我在 C# 中有一个很长的单词列表,我想在该列表中找到具有相同首尾字母且长度介于 5 到 7 个字符之间的所有单词。例如,列表可能有:
“浪费了被洗了洗了洗了看着手表枯萎了废物智慧洗涤物”
它会回来
长度:5-7,第一个字母:w,最后一个字母:d,“wasted,washed,looking” 长度:5-7,第一个字母:w,最后一个字母:s,“washes, watch, wilts, wastes”
然后我可能会将规范更改为 3-4 个字符的长度,这将返回
长度:3-4,第一个字母:w,最后一个字母:s,“was, wits”
我发现这种拆分方法非常快,使每个项目都独一无二,使用长度并给出了一个很好的开始: Spliting string into words length-based lists c#
有没有办法修改/使用它来考虑第一个和最后一个字母?
编辑
我最初询问“最快”的方式是因为我通常使用大量字符串数组(速度慢且涉及大量代码)来解决此类问题。LINQ 和查找对我来说是新的,但我可以看到我链接到的解决方案中使用的 ILookup 的简单性令人惊叹,而且速度非常快。我实际上并不需要最少的处理器时间。任何避免我为这些信息创建单独数组的方法都很棒。