我真的不知道列舉的列表,但經過一些研究後,我發現這個列表可能有助於解決我的問題。所以我在我的設置中有一個名爲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