如何在循环外打印foreach循环中获得的值

how to print value obtained in foreach loop outside the loop

我在 foreach 循环中找到了 denomnumer 的值,我想用它们来找到 average = numer/denom。但它显示了一个错误:

The name 'numer' does not exist in the current context.

The name 'denom' does not exist in the current context.

请查看代码并提出修复建议。

foreach (DataRow rw in dataTablebuy.Rows)
{
     int denom = 0;
     denom = denom + int.Parse(rw["Quantity"].ToString());
     int numer = 0;
     numer = numer + (int.Parse(rw["Quantity"].ToString()) * int.Parse(rw["price"].ToString()));

}
float avg = numer / denom;
Response.Write(String.Format("Element {0}", avg));

您必须在循环外声明变量。否则它不能在循环(范围)之外使用。 我还更改了您的代码中的某些内容。你用了denom = denom + ...,看看我是怎么做到的。完全一样。

int denom = 0;
int numer = 0;
foreach (DataRow rw in dataTablebuy.Rows)
{
     denom += int.Parse(rw["Quantity"].ToString());
     numer += (int.Parse(rw["Quantity"].ToString()) * int.Parse(rw["price"].ToString()));
}
float avg = numer / denom;
Response.Write(String.Format("Element {0}", avg));

如果要在循环外使用变量,则需要在循环外声明。