我有一个字母数字List<string>
,我需要在两个用户输入值之间返回所有字符串。例如,假设字符串由以下值组成;
100F
50F
aa1
SR100
SR9
abc
因此,如果用户输入ab
和z
的值,则会返回以下内容;
abc
SR9
SR100
我该怎么做?
答案 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;值 - 此代码会将其排除,但如果您将<
更改为<=
,您将进行包含性搜索。
答案 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);