搜索两个值之间的字符串列表

本文关键字:之间 字符串 列表 两个 搜索 | 更新日期: 2023-09-27 18:31:49

我有一个字母数字List<string>,我需要返回两个用户输入值之间的所有字符串。 例如,假设字符串由以下值组成;

100F
50F
aa1
SR100
SR9
abc

因此,如果用户输入 ab 的值并z将返回以下内容;

abc
SR9
SR100

我该怎么做?

搜索两个值之间的字符串列表

我会使用 CompareTo 将列表中的每个项目与开始和结束进行比较:

public IEnumerable<string> PerformSearch(List<string> list, string start, string end)
{
    return list.Where(i => 
        i.CompareTo(start) >= 0 &&
        i.CompareTo(end) < 0);
}

要按您指定的顺序获取结果(不清楚顺序是否重要),您必须按字母顺序对结果进行排序。

也不清楚是要包含还是排除"end"值 - 此代码将排除它,但是如果您将<更改为<=,您将进行包含搜索。

示例:https://dotnetfiddle.net/PHXqXG

您可以使用

where

List<string> values=.....;
string lower="ab";
string upper="z";
var matches=values.Where(s=>string.Compare(s,lower)>=0 && s.Compare(s,upper)<=0);