我真的不知道列举的列表,但经过一些研究后,我发现这个列表可能有助于解决我的问题。所以我在我的设置中有一个名为strGrades的字符串,它是我手动更新的一系列字符串。范围是0155-0160,0271-0388,0455-0503,0588-687。我基本上想要做的就是找到那些没有在这个档次列表中的值(例如0161,0389,0504-0587 ...)枚举int列表<GradeRange>
于是我想出了一个功能,让我拿到每场比赛在等级范围:
public static List<GradeRange> GetValidGrades()
{
MatchCollection matches= Regex.Matches(Settings.Default.productRange,
Settings.Default.srGradeRange);
List<GradeRange> ranges= new List<GradeRange();
if(matches.Count >0)
{
foreach (Match match in matches)
{
ranges.Add(new GradeRange() 23 {
Start= int.Parse(match.Groups["Start"].Value),
Stop= int.Parse(match.Groups["Stop"].Value)
});
}
}
return ranges;
}
这里是等级范围类
public class GrandRange
{
public int Start{get; set;)
public int Stop {get; set;)
}
所以上面的函数caputures我开始和结束的价值观,任何人都可以请帮我进入一个榜单在哪里可以找到超出范围值的值,我只需要一个起点。非常感谢!
范围是否内插? – Andre
你可以使用'Contains()'和滚动你自己的'IEqualityComparer'来执行你的检查。 –
你是如何从前面的范围获得0161,0389,0504-0587的? 0161刚好在0161之后,但为什么0162不包含在你预期的范围内?为什么范围起始数字前缀为零?只是一个格式化的东西? – vidstige