根据字符串匹配搜索列表<string>

时间:2019-04-12 13:52:10

标签: c# list search

我有以下c#List<string>

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

我现在要查找字母数字值小于或等于d的最后一项的索引,在这种情况下,该索引将为2-代表“ c”

有人可以建议我该怎么做吗?它需要快速,因为它将搜索大型列表。

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

编辑-我知道我可以编写一个for循环来执行此操作,但是还有其他方法可以执行此操作吗?也许是内置函数。

我知道我是否可以使用Linq。

2 个答案:

答案 0 :(得分:3)

您要FindLastIndex

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

注意:您必须使用CompareTo,因为字符串中不存在<

答案 1 :(得分:1)

在对-dSAFER进行排序的情况下,使用BinarySearch方法将获得出色的性能。如果不是,则不要使用此方法,因为您会得到不正确的结果。

List