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

时间:2014-11-24 17:03:47

标签: c# string

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

100F
50F
aa1
SR100
SR9
abc

因此,如果用户输入abz的值,则会返回以下内容;

abc
SR9
SR100

我该怎么做?

2 个答案:

答案 0 :(得分:4)

我会使用CompareTo

将列表中的每个项目与开头和结尾进行比较
public IEnumerable<string> PerformSearch(List<string> list, string start, string end)
{
    return list.Where(i => 
        i.CompareTo(start) >= 0 &&
        i.CompareTo(end) < 0);
}

要按照您指定的顺序获取结果(如果订单很重要,则不清楚),您必须按字母顺序排序结果。

您还不清楚是否要包含排除&#34;结束&#34;值 - 此代码会将其排除,但如果您将<更改为<=,您将进行包含性搜索。

示例https://dotnetfiddle.net/PHXqXG

答案 1 :(得分:0)

您可以使用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);