我有一项家庭作业,其中我的任务是使用cardArray
类从SuperCard
类型的Random
中随机化5张牌,所有值都返回为类型为SuperCard
的数组。我想要了解的是如何将自定义类型SuperCard
投射到int
,以便使用Next()
类中的Random
方法。到目前为止我所拥有的是什么;
SuperCard[] hand = new SuperCard[5];
for (int index1 = 0; index1 <= 4; index1++)
{
hand[index1] = rand.Next(cardArray[0], cardArray[51]);//cant figure out how to cast this
}
如果我尝试投射rand.Next((int)cardArray[0],(int)cardArray[51]);
我得到错误&#34;无法将类型SuperCard转换为int&#34;。我可以将数组转换为整数数组但不能再返回。
答案 0 :(得分:1)
通过使用cardArray
的索引作为随机数来解决您的直接问题,而不是元素本身。即:
hand[index1] = cardArray[rand.Next(0, cardArray.Length)];
请注意,对cardArray
有效的索引范围用于随机数,然后返回的数字用于实际索引cardArray
以选择实际的卡。
其他几点:
Next(int)
重载,假定范围的下限为0
。因此,您可以使用rand.Next(cardArray.Length)
代替。