【发布时间】:2017-09-04 21:19:55
【问题描述】:
好的,这是我的问题。我有一个包含多个规格的车辆构造函数,以及一个注册车辆的类数组。
在我的表单中,我希望让用户在该数组中搜索特定值(在这种情况下,他应输入车辆类型和购买年份,从而在数组中搜索它们,并在找到通讯员后,然后他必须选择他们的收购和出售价格),它应该返回利润的总和。
或者以更简单的方式:利润 = 销售价格 - 收购价格。
到目前为止,我的代码显示了单独的利润,然后是利润的总和,我如何得到后者?
int i;
bool found = false;
double lucro = 0;
for (i = 0; i < viaturas.NumElementos; i++)
if (viaturas.get(i).CVTipoVeículo == Int32.Parse(cbtipoveiculo.Text))
{
if (viaturas.get(i).CVDataVenda.Year == Int32.Parse(tbanopesquisa.Text))
{
double a = viaturas.get(i).CVPreçoVenda;
double b = viaturas.get(i).CVPreçoAquisição;
lucro += a - b;
found = true;
MessageBox.Show("O total de lucro das vendas em " + viaturas.get(i).CVDataVenda.Year + " foi de: " + lucro + "€", "Lucro", MessageBoxButtons.OK);
}
}
if (found == false)
{
MessageBox.Show("Conjunto de viaturas não existente!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
LimpaCampos();
}
【问题讨论】:
-
只需声明另一个名为 double Total = 0; 的变量,然后在循环内写入 Total += lucro; 最后你会得到总数
-
您应该使用 System.Linq 库扩展来实现这一点。它足够清晰和快速。看来你对 C# 不熟悉,对吗?
-
@Steve 我是这样做的,但我仍然收到更多关于个人利润的信息。
-
@DiegoRafaelSouza 说一般编程!但是我该如何使用 Linq 呢?
-
就像
viaturas.Where(v => v.CVTipoVeículo == Convert.ToInt32(cbtipoveiculo.Text)).Sum(i => i.CVPreçoVenda - i.CVPreçoAquisição),你不需要for。