所以我的问题是我在这段代码中得到了一个无效的参数错误.它的意思是拿出一张牌并得到它们总价值的总和.然后,如果该值大于21,它会检查手中的任何牌是否是ace(或者类型是== ace并且它的牌totalVal == 11)现在我的问题是我为此写的语句无论手中是否有ace都会运行并抛出错误.
我想知道是否有任何其他方式我可以写下面的语句,以使其正确运行?
public int HandTotal()
{
int total = CurrentCards.Sum(n => n.Total);
**while ( total > 21 && CurrentCards.First(n => n.Type == 13 && n.Total == 11) !=null)**
{
CurrentCards.First(n => n.Type == 13).Total = 1;
total = CurrentCards.Sum(n => n.Total);
return total;
}
return total;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种不同的方法,包括将!= null更改为> 0,但是会抛出一个无效的参数错误,说明>不能与此语句一起使用.有没有其他方法可以确定CurrentCards.First(n => n.Type == 13 && n.Total == 11)是真还是假?
非常感谢任何帮助或建议.
谢谢
while(total > 21 && CurrentCards.Any(n => n.Type == 13 && n.Total == 11))
Run Code Online (Sandbox Code Playgroud)