是否有一种方法将字符串数组中的字符串值转换为单个int值?c# WPF



作为上下文,我正在WPF()上使用c#制作一个基本的BlackJack应用程序。净框架)。现在我有了一个字符串数组,当我按下按钮时,分发的牌会同时发给玩家和发牌人。

我想使用相同的数组,为单个字符串分配单独的int值,使用这些值来计算在按下按钮后放在列表框中的卡片的总和,以在标签中显示总和。

我已经尝试了很多事情,现在不确定如何将字符串数组转换为整型。

如果你知道更好/更简单的方法,我绝对愿意接受建议。

Thanks in advance

private string[] kaartenArray = new string[52]
{
"Klaveren Aas", "Klaveren 2", "Klaveren 3", "Klaveren 4", "Klaveren 5", "Klaveren 6", "Klaveren 7", "Klaveren 8", "Klaveren 9", "Klaveren 10", "Klaveren Boer", "Klaveren Koningin", "Klaveren Koning",
"Ruiten Aas", "Ruiten 2", "Ruiten 3", "Ruiten 4", "Ruiten 5", "Ruiten 6", "Ruiten 7", "Ruiten 8", "Ruiten 9", "Ruiten 10", "Ruiten Boer", "Ruiten Koningin", "Ruiten Koning",
"Harten Aas", "Harten 2", "Harten 3", "Harten 4", "Harten 5", "Harten 6", "Harten 7", "Harten 8", "Harten 9", "Harten 10", "Harten Boer", "Harten Koningin", "Harten Koning",
"Schoppen Aas", "Schoppen 2", "Schoppen 3", "Schoppen 4", "Schoppen 5", "Schoppen 6", "Schoppen 7", "Schoppen 8", "Schoppen 9", "Schoppen 10", "Schoppen Boer", "Schoppen Koningin", "Schoppen Koning"
};
private void KaartWaarde()
{
int[] kaartWaarde = Array.ConvertAll(kaartenArray, s => int.Parse(s));
kaartWaarde[0] = 1;
kaartWaarde[1] = 2;
kaartWaarde[2] = 3;
kaartWaarde[3] = 4;
kaartWaarde[4] = 5;
kaartWaarde[5] = 6;
kaartWaarde[6] = 7;
kaartWaarde[7] = 8;
Etc............

这是我最后一次尝试转换,我不确定它是什么,但显然这不能用于我想要使用它的目的。

Klaveren, Ruiten, Harten和Schoppen是西装。

为什么不让自己的生活更轻松,使用c#的强大功能并使用类,例如

class Card
{
public string Name {get;set;}
public int Value {get;set;}
public override string ToString()
{
return Name;
}
}

则保留Card类的列表

List<Card> AllCards = new List<Card>(){ new Card{Name="King", Value=10},...};

你可以通过添加Card Suit来进一步扩展它,例如

class Card
{
public string Name {get;set;}
public string Suit{get;set;}
public int Value {get;set;}
public override string ToString()
{
return $"{Name} of {Suit}";
}
}

则有new Card{Name="Queen", Value=10, Suit="Diamond"}

显然,这可以通过为Suit或Value使用枚举类型以及使用私有setter和构造函数传递属性来扩展。

如果您希望在WPF页面中使用数据绑定,您可以通过为公共属性实现INotifyPropertyChanged来增强Card类。

最新更新