c# - C#如何计算列表框选择的总和
问题描述
我的代码遇到问题,我向您解释我希望获得的内容:
- 我有一个带有字典的列表框,字典允许我将列表框的选择更改为更复杂的值
我的字典代码:
class RacesMask
{
Dictionary<string, string> rMask = new Dictionary<string, string>();
public RacesMask()
{
rMask.Add("Toutes", "-1");
rMask.Add("Humains", "1");
rMask.Add("Orcs", "2");
rMask.Add("Nains", "3");
rMask.Add("Elfes de la nuit", "4");
rMask.Add("Mort-vivants", "5");
rMask.Add("Taurens", "6");
rMask.Add("Gnomes", "7");
rMask.Add("Trolls", "8");
rMask.Add("Gobelins", "9");
rMask.Add("Elfes de Sang", "10");
rMask.Add("Draeneis", "11");
rMask.Add("Worgens", "22");
rMask.Add("Pandarens", "24");
rMask.Add("Sacrenuit", "27");
rMask.Add("Tauren de Haut-Roc", "28");
rMask.Add("Elfe du vide", "29");
rMask.Add("Draeneï sancteforge", "30");
}
public Dictionary<string, string> GetRacesMask() { return rMask; }
}
- 现在,我希望当我选择我的 Listbox 的各种值时,它会进行计算,例如:
选择:人类(我的字典里有 1 个)和兽人(我的字典里有 2 个)
一个消息框向我显示结果 2 + 1 = 3
- 但是,实际上我的列表框只计算一个选定的值,而不计算其他值。
我的列表框代码:
private void listBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
RacesMask raceMask = new RacesMask();
Dictionary<string, string> rM = raceMask.GetRacesMask();
foreach (var rMask in listBox1.SelectedItems)
{
var selection1 = int.Parse(rM[rMask.ToString()]);
var selection2 = int.Parse(rM[rMask.ToString()]);
var total = selection1 + selection2;
MessageBox.Show(total.ToString());
}
预先感谢您的帮助
解决方案
您可以在循环外有一个变量total
,然后将 ListBox 中每个选定项目的值相加,total
如:
int total = 0;
foreach (var rMask in listBox1.SelectedItems)
{
selection = int.Parse(rM[rMask.ToString()]);
total = total + selection;
}
MessageBox.Show(total.ToString()); // now show the result finally.
推荐阅读
- codeigniter - 我的数据保存在 codeigniter 的一栏中
- virtual-machine - 如何使用命令行在 XenServer 中查找虚拟机的 DNS 名称?
- qt - 如何为肖像应用配置 QT VirtualKeyboard
- jquery - DirtyForms 与 jQuery Validate 的 submitHandler() 方法一起使用时无法正常工作
- bash - 使用 `bash -c` 设置 $PS4
- javascript - Botkit,在 Jabber 中向房间发送消息
- php - 如何使用箭头指针运算符对动态生成的值进行 PHP 对象引用
- arrays - 如何使用 MongoDB 数据库在 Laravel 中获取数组
- git - Git不以交互方式添加特定行
- templates - 尝试将变量与 Twig 上的 html 标记内的字符串连接时出现问题