这是一个主程序。使用默认值的.NET控制台应用程序。测试数据的NET字符串比较:
internal class Program
{
static void Main(string[] args)
{
var lo = "9958";
var hi = "99585";
var strings = new List<string>{ "9958", "99581", "99585" };
CheckIt(lo, hi, strings);
lo = "30789";
hi = "310100";
strings = new List<string>{ "30789", "30790", "31000" };
CheckIt(lo, hi, strings);
lo = "81190";
hi = "81190ZZ";
strings = new List<string>{ "81190", "81190A", "81190AA", "81190B", "81190C", "81190AB", "81190ZZ" };
CheckIt(lo, hi, strings);
}
static void CheckIt(string lo, string hi, List<string> strings)
{
foreach(var s in strings)
{
Console.WriteLine($"{s} >= {lo} <= {hi}: {s.CompareTo(lo) >= 0 && s.CompareTo(hi) <= 0}");
}
}
}
所有输出均为
True
当然,您可以编写更好的测试代码,并可能使用单元测试方法,但这是一个简单的示例来帮助您开始。
注意:虽然这似乎是一个微不足道的话题,但我希望排序字符串是我希望所有开发人员在学习过程中都思考和探索了几个小时的事情。例如,你应该知道为什么“1”在作为字符串排序时可以排在“10”之前,或者“a”是否排在“a”之前。一旦你充分理解了这一点,许多其他事情就开始变得有意义了(我想到了其他好问题,比如西班牙语中有口音的人会出现在没有口音的人之前吗…?)