c#对数组中的搜索结果求和
好的,这是我的问题。我有一个具有多个规格的车辆构造函数和一个注册车辆的类数组 在我的表格中,我希望让用户在该数组中搜索特定值(在这种情况下,用户应输入车辆类型和购买年份,从而在数组中搜索它们,在找到通讯员后,他必须选择他们的收购和出售价格),并返回利润总额 或者用更简单的方式:利润=销售价格-收购价格 到目前为止,我的代码分别显示了利润,然后是利润的总和,我如何得到后者c#对数组中的搜索结果求和,c#,arrays,forms,sum,C#,Arrays,Forms,Sum,好的,这是我的问题。我有一个具有多个规格的车辆构造函数和一个注册车辆的类数组 在我的表格中,我希望让用户在该数组中搜索特定值(在这种情况下,用户应输入车辆类型和购买年份,从而在数组中搜索它们,在找到通讯员后,他必须选择他们的收购和出售价格),并返回利润总额 或者用更简单的方式:利润=销售价格-收购价格 到目前为止,我的代码分别显示了利润,然后是利润的总和,我如何得到后者 int i; bool found = false; double lucro = 0;
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();
}
inti;
bool-found=false;
双卢克罗=0;
对于(i=0;i
如果您想要一个将所有利润相加的值,请将代码更改为以下值
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; // Add it instead of overwriting
found = true;
//falta-me pô-lo a somar todos os lucros.
}
}
// Show a MessageBox here with a text (Sorry, I don't speak your language) that outputs your 'lucro' variable
inti;
bool-found=false;
双卢克罗=0;
对于(i=0;i
如果这不是你的意思,那么我不知道你怎么能把所有的利润都放到一个值中只需声明另一个变量double Total=0;然后在循环内部写入Total+=lucro;最后,您将获得您应该使用System.Linq库扩展来实现此目的的总数。这是最清晰和足够快的。似乎你对C#不熟悉,对吗?@Steve我就是这样做的,但我仍然得到更多关于个人利益的信息。@Diegrafaelsouza说的是一般编程!但我该如何使用Linq呢?这就像是
viaturas.Where(v=>v.CVTipoVeículo==Convert.ToInt32(cbtipoveiculo.Text)).Sum(I=>I.CVPreçoVenda-I.CVPreçoAquisiço)
一样,你不需要来处理,这实际上是一种工作。但是现在我得到了两个消息框,第一个显示利润,第二个显示利润的总和。(请注意,语言错误:/)您必须删除for语句中的第一个MesageBox,只保留最后一个显示总和的MesageBox。