循环遍历数据表的每一行中的平均值 [英] Loop Through Average Value in Each Row of Datatable
问题描述
大家好,
我有一个数据表,其中包含许多带有列的数据行:CUSTOMER,MAX,MIN,AVG,25TH_PERCENTILE,50TH_PERCENTILE和75TH_PERCENTILE。我还有一个foreach循环,它将循环遍历每一行数据表并将每个数据行数据分配到图表的每个系列中以绘制图表。
我能够循环遍历每行数据表中的平均值。但现在我遇到了其他问题..
问题:如何循环平均值每个点被添加到图表的系列? (请看下面的代码:)
这是我的代码:
int avg = 0 ;
foreach (DataRow row in dt.Rows)
{
Chart1.Series [ 0 ]。Points.AddXY(row [ CUSTOMER], new object [] {row [< span class =code-string> MIN],行[ < span class =code-string> MAX],
row [ 25TH_PERCENTILE ],行[ 75TH_PERCENTILE],行[ AVG],行[ 50TH_PERCENTILE]});
Chart1.Series [ 1 ]。Points.AddXY(行[ CUSTOMER], new object [] {row [ AVG]});
if (!String.IsNullOrEmpty(row [ AVG]。ToString()))
{
avg = Convert.ToInt32(row [ AVG]。ToString());
}
if (avg > = 0 && avg < = 10 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Green;
}
else if (avg > = 11 && avg < = 30 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Yellow;
}
else if (avg > = 31 && avg < = 50 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Red;
}
}
这是我目前得到的输出:
http://i.stack.imgur.com/BDGcX.png [ ^ ]
欣赏如果有人可以帮我这个,谢谢!
如果 ( int .Parse(row [Avg] .ToString())> = 1 &&& int .Parse(row [Avg] .ToString())> = 5 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Blue;
}
其他 如果( int .Parse(row [Avg] .ToString())> = 6 & ;& int .Parse(row [Avg] .ToString())> = 10 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Yellow;
}
else
{
Chart1.Series [ 1 跨度>] MarkerColor = Color.Green。
}
喜欢这个?
-KR
< blockquote>由于你已经在 foreach
循环中,你可以这样做:
var average =( int )row [ 平均];
if ((平均> = 1 )&&(平均< = 5 ))
{
Chart1.Series [ 1 ]。MarkerColor = Color.Blue;
}
其他 if ((平均> = 6 )&&(平均< = 10 ))
{
Chart1.Series [ 1 ]。MarkerColor = Color.Yellow ;
}
else
{
Chart1.Series [ 1 ]。MarkerColor = Color.Green;
}
可以帮助你:
foreach (DataRow行 in dt.Rows)
{
Chart1.Series [ 0 ]。Points.AddXY(行[ CUSTOMER],< span class =code-keyword> new object [] {row [ < span class =code-string> MIN],row [ MAX ],
行[ 25TH_PERCENTILE],行[ 75TH_PERCENTILE],行[ AVG],row [ 50TH_PERCENTILE]});
Chart1.Series [ 1 ]。Points.AddXY(行[ CUSTOMER], new object [] {row [ Avg]});
int avg = 0 ;
if (!String.IsNullOrEmpty(row [ 平均]。ToString()))
{
avg = Covert.ToInt16(行[ 平均跨度>]的ToString());
}
if (avg > = 1 && avg < = 5 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Blue;
}
else if (avg > = 6 && avg < = 10 )
{
Chart1.Series [ 1 ]。MarkerColor = Color.Yellow;
}
else
{
Chart1.Series [ 1 跨度>] MarkerColor = Color.Green。
}
}
hi all,
I have a datatable which consists of many datarows with columns: CUSTOMER, MAX, MIN, AVG, 25TH_PERCENTILE, 50TH_PERCENTILE AND 75TH_PERCENTILE. I also have a foreach loop which will loop through each row of datatable and assign each datarow data into each series of the chart to plot the chart.
I am able to loop through average value in each row of datatable. But now I faced with other issues..
Question: How can I loop through the average value of each point being added to the series of the chart? (Please look at my code below: )
This is my code:
int avg=0;
foreach (DataRow row in dt.Rows)
{
Chart1.Series[0].Points.AddXY(row["CUSTOMER"], new object[] { row["MIN"], row["MAX"],
row["25TH_PERCENTILE"], row["75TH_PERCENTILE"], row["AVG"], row["50TH_PERCENTILE"] });
Chart1.Series[1].Points.AddXY(row["CUSTOMER"], new object[] { row["AVG"] });
if (!String.IsNullOrEmpty(row["AVG"].ToString()))
{
avg = Convert.ToInt32(row["AVG"].ToString());
}
if (avg >= 0 && avg <= 10)
{
Chart1.Series[1].MarkerColor = Color.Green;
}
else if (avg >= 11 && avg <= 30)
{
Chart1.Series[1].MarkerColor = Color.Yellow;
}
else if (avg >= 31 && avg <= 50)
{
Chart1.Series[1].MarkerColor = Color.Red;
}
}
This is the output I get currently:
http://i.stack.imgur.com/BDGcX.png[^]
Appreciate if someone can help me on this, thanks!
if(int.Parse(row[Avg].ToString()) >=1 && int.Parse(row[Avg].ToString()) >=5) { Chart1.Series[1].MarkerColor = Color.Blue; } else if(int.Parse(row[Avg].ToString()) >=6 && int.Parse(row[Avg].ToString()) >=10) { Chart1.Series[1].MarkerColor = Color.Yellow; } else { Chart1.Series[1].MarkerColor=Color.Green; }
Like this ?
-KR
Since you are already inside theforeach
loop, you can do something like:
var average = (int)row["Avg"]; if ((average >= 1) && (average <= 5)) { Chart1.Series[1].MarkerColor = Color.Blue; } else if ((average >= 6) && (average <= 10)) { Chart1.Series[1].MarkerColor = Color.Yellow; } else { Chart1.Series[1].MarkerColor = Color.Green; }
may help you:
foreach (DataRow row in dt.Rows) { Chart1.Series[0].Points.AddXY(row["CUSTOMER"], new object[] { row["MIN"], row["MAX"], row["25TH_PERCENTILE"], row["75TH_PERCENTILE"], row["AVG"], row["50TH_PERCENTILE"] }); Chart1.Series[1].Points.AddXY(row["CUSTOMER"], new object[] { row["Avg"] }); int avg = 0; if(!String.IsNullOrEmpty(row["Avg"].ToString())) { avg = Covert.ToInt16(row["Avg"].ToString()); } if(avg >=1 && avg <=5) { Chart1.Series[1].MarkerColor = Color.Blue; } else if(avg >=6 && avg <=10) { Chart1.Series[1].MarkerColor = Color.Yellow; } else { Chart1.Series[1].MarkerColor=Color.Green; } }
这篇关于循环遍历数据表的每一行中的平均值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!