循环遍历数据表的每一行中的平均值 [英] Loop Through Average Value in Each Row of Datatable

查看:106
本文介绍了循环遍历数据表的每一行中的平均值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我有一个数据表,其中包含许多带有列的数据行: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 the foreach 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆