gam*_*nts 3 c# random if-statement
是否有一种较短的方法来检查我的随机数从1 - 100(catNum)对这个动物表?这个看起来并不那么糟糕,但是我还有几个更大的表可以使用,我想使用的线路比使用下面的语句少:
if (catNum < 36) { category = "Urban"; }
else if (catNum < 51) { category = "Rural"; }
else if (catNum < 76) { category = "Wild"; }
else if (catNum < 86) { category = "Wild Birds"; }
else { category = "Zoo"; }
Run Code Online (Sandbox Code Playgroud)

小智 5
我喜欢使用类似这样的东西,而不是很多if/else A类
class Category
{
public int Min { get; set; }
public int Max { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
初始化类别一次,并用您的值填充它
var categories = new List<Category>();
Run Code Online (Sandbox Code Playgroud)
最后一种解决类别的方法
public static string Get(int currentValue)
{
var last = categories.Last(m => m.Min < currentValue);
//if the list is ordered
//or
// var last = categories.FirstOrDefault(m => m.Min <= currentValue && m.Max >= currentValue);
return last?.Name;
}
Run Code Online (Sandbox Code Playgroud)