首页 > 解决方案 > 搜索列表基于字符串匹配

问题描述

我有以下c#List<string>

var lists = new List<string>
{
    "a", "b", "c", "ee", "ja"
}

我现在想找到字母数字值小于或等于 的最后一项的索引,d在本例中为 2 - 表示“c”

谁能建议我如何做到这一点?它需要快速,因为它将搜索大型列表。

是否还有一种方法可以对最接近的匹配"ef"项或任何一组多个字符进行相同的比较

编辑 - 我知道我可以编写一个 for 循环来做到这一点,但有没有其他方法可以做到这一点?也许是内置功能。

我知道如果它是一个数字函数,我可以使用 Linq。

标签: c#listsearch

解决方案


你想要FindLastIndex

var index = lists.FindLastIndex(value => value.CompareTo("d") < 0);

注意:对于字符串,您必须使用CompareToas<不存在。


推荐阅读