Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 循环遍历Datatable每行中的平均值_C#_Asp.net_If Statement_Charts_Datatable - Fatal编程技术网

C# 循环遍历Datatable每行中的平均值

C# 循环遍历Datatable每行中的平均值,c#,asp.net,if-statement,charts,datatable,C#,Asp.net,If Statement,Charts,Datatable,我有一个datatable,它由许多数据行和列组成:CUSTOMER、MAX、MIN、AVG、25TH_PERCENTILE、50TH_PERCENTILE和75TH_PERCENTILE。我还有一个foreach循环,它将循环遍历datatable的每一行,并将每个datarow数据分配到图表的每个系列中,以绘制图表 我能够循环遍历datatable中每一行的平均值。但现在我面临着其他问题 问题:如何循环查看添加到图表系列的每个点的平均值?(请看下面我的代码:) 这是我尝试过的(Foreach

我有一个datatable,它由许多数据行和列组成:CUSTOMER、MAX、MIN、AVG、25TH_PERCENTILE、50TH_PERCENTILE和75TH_PERCENTILE。我还有一个foreach循环,它将循环遍历datatable的每一行,并将每个datarow数据分配到图表的每个系列中,以绘制图表

我能够循环遍历datatable中每一行的平均值。但现在我面临着其他问题

问题:如何循环查看添加到图表系列的每个点的平均值?(请看下面我的代码:)

这是我尝试过的(Foreach循环):

int平均值=0;
int指数=0;
foreach(数据行中的数据行)
{
平均值=(int)行[“平均值”];
图表1.系列[0].点.AddXY(第[“客户”]、新对象[]行[“最小”]、第[“最大”]、第[“第25百分位”]、第[“第75百分位”]、第[“平均值”]、第[“第50百分位”]行);
INDEX=Chart1.Series[1].Points.AddXY(行[“客户”],新对象[]行[“平均”]});

如果((INDEX>=1)&&&(INDEX=11)&&(INDEX=31)&&&(INDEX如果我正确理解了您的问题,您可以将行数据提取到局部变量中,然后对这些变量执行逻辑。我假设数据类型,但可能是这样的:

double average; 

foreach (DataRow row in dt.Rows)
{
    average = row["AVG"];

    Chart1.Series[0].Points.AddXY(row["CUSTOMER"], new object[] { row["MIN"], row["MAX"],
    row["25TH_PERCENTILE"], row["75TH_PERCENTILE"], average, row["50TH_PERCENTILE"] });

    Chart1.Series[1].Points.AddXY(row["CUSTOMER"], new object[] { average }); 

    if(average >= 1 && average <= 5)
    {             
        Chart1.Series[1].MarkerColor = Color.Blue;
    }
    elseif(average >=6 && average <= 10)
    {
        Chart1.Series[1].MarkerColor = Color.Yellow;
    }
    else
    {
        Chart1.Series[1].MarkerColor=Color.Green;
    }
}
双平均;
foreach(数据行中的数据行)
{
平均值=行[“平均值”];
Chart1.Series[0].Points.AddXY(第[“客户”]行,新对象[]行[“最小”],第[“最大”]行,
第[“第25百分位”]、第[“第75百分位”]、平均值、第[“第50百分位”]行;
Chart1.Series[1].Points.AddXY(行[“客户”],新对象[]{average});

如果(平均值>=1&&average=6&&average获得添加点的索引,如下所示:

            index = Chart1.Series[1].Points.AddXY(row["Customer"], new object[] { row["Avg"] });
                Chart1.Series[1].Points[index].MarkerColor = // some color here according to your if statement;
然后使用它更改序列中每个平均点的标记颜色,如下所示:

            index = Chart1.Series[1].Points.AddXY(row["Customer"], new object[] { row["Avg"] });
                Chart1.Series[1].Points[index].MarkerColor = // some color here according to your if statement;
你应该得到这样的东西:

编辑:这就是您的
foreach
循环的外观:

double avg = 0;
int index = 0;

        foreach (DataRow row in dt.Rows)
        {
            avg = (double)row["Avg"];

            Chart1.Series[0].Points.AddXY(row["Customer"], new object[] { row["Min"], row["Max"], row["Percentile25"], row["Percentile75"], row["Avg"], row["Percentile50"]});
            index = Chart1.Series[1].Points.AddXY(row["Customer"], new object[] { row["Avg"] });

            if (avg >= 0 && avg <= 30)
            {
                Chart1.Series[1].Points[index].MarkerColor = Color.Green;
            }
            else if (avg > 30 && avg <= 40)
            {
                Chart1.Series[1].Points[index].MarkerColor = Color.Yellow;
            }
            else if (avg > 40 && avg <= 60)
            {
                Chart1.Series[1].Points[index].MarkerColor = Color.Red;
            }
        }
double平均值=0;
int指数=0;
foreach(数据行中的数据行)
{
平均值=(双)行[“平均值”];
图表1.系列[0].点.AddXY(第[“客户”]、新对象[]行[“最小”]、第[“最大”]、第[“百分位25”]、第[“百分位75”]、第[“平均”]、第[“百分位50”]行);
index=Chart1.Series[1].Points.AddXY(行[“客户”],新对象[]行[“平均”]});

如果(avg>=0&&avg 30&&avg 40&&avg hi@Ned Stoyanov,谢谢你的帮助!:)但是我在这里遇到了一些问题..你的解决方案是针对整个图表系列,我如何循环通过添加到图表系列中的每个点的平均值?例如:Chart1.series[1].Points.AddXY(row[“CUSTOMER”],new object[]row{[“平均值”]});,我想检查序列上添加的每个点的平均值是多少,我想循环查看图表序列上添加的每个点的平均值。假设图表序列上有3个点,我想循环查看图表序列上每个点的平均值。请查看我更新的post、 谢谢!你是说一个运行平均值吗?例如,当你添加点2时,它会取点1和点2的平均值?嗨@Ned Stoyanov,我的意思是,假设datatable中只有很少的数据行,每个数据行数据将用于在图表上绘制一个点,因此一个图表可能有许多点(方框图),我想得到每个点的平均值。谢谢你的帮助!平均值通常是指所有值的总和除以值的个数。你如何计算一个点的平均值?例如,你使用什么值?嗨@jstreet,谢谢你的帮助!我尝试了你建议的方法,但得到了一个非常奇怪的输出,我不明白为什么请看我上面编辑的帖子,谢谢!您只需将其调整到
IFs
链中的值即可。您好@jstreet,谢谢您的帮助!但是它只获取每个索引。它不会获取每个索引的“平均值”。您知道如何获取每个索引的平均值,然后使用ifelse语句dep指定适当的标记颜色吗以每个索引的平均值结尾?你能准确地发布你的
foreach
代码现在是什么样子吗?它仍然是不正确的…..你仍然在
IFs
中使用
索引
…请仔细查看我的帖子。顺便问一下
LVL1RISKCHART\u POINTINDEX
是什么????