Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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# 如何根据总数计算学生等级,如果总数重复两次,则等级应相同_C#_Asp.net_Ranking - Fatal编程技术网

C# 如何根据总数计算学生等级,如果总数重复两次,则等级应相同

C# 如何根据总数计算学生等级,如果总数重复两次,则等级应相同,c#,asp.net,ranking,C#,Asp.net,Ranking,以下是我所尝试的: DataTable dt = new DataTable(); dt.DefaultView.Sort = "ratio DESC"; dt.Columns.Add(new DataColumn("Rank", typeof(int))); int count = 1; foreach (DataRowView dr in dt.DefaultView) { dr["Rank"] = count++; } 当我循环时,它应该

以下是我所尝试的:

  DataTable dt = new DataTable();
  dt.DefaultView.Sort = "ratio DESC";
  dt.Columns.Add(new DataColumn("Rank", typeof(int)));
  int count = 1;

  foreach (DataRowView dr in dt.DefaultView)
    {
      dr["Rank"] = count++;
    }

当我循环时,它应该检查一些条件,有人能帮我吗

循环时需要访问上一行值。使用传统的for循环。注意第一条记录,因为它将有前一行

for( int i = 0; i < dt.DefaultView.Rows.Count; i++ )
{
    if( i > 0 )
    {
       // Compare with previous row using index
       if( dt.DefaultView.Rows[i]["ratio"] == dt.DefaultView.Rows[i-1]["ratio"])
       {
           dt.DefaultView.Rows[i]["Rank"] = count;
       }
      else
      {
          dt.DefaultView.Rows[i]["Rank"] = count++;
      }
    }
   else
   {
       dt.DefaultView.Rows[i]["Rank"] = count;
   } 

}
for(int i=0;i0)
{
//使用索引与上一行进行比较
if(dt.DefaultView.Rows[i][“比率”]==dt.DefaultView.Rows[i-1][“比率”])
{
dt.DefaultView.Rows[i][“Rank”]=count;
}
其他的
{
dt.DefaultView.Rows[i][“Rank”]=count++;
}
}
其他的
{
dt.DefaultView.Rows[i][“Rank”]=count;
} 
}

循环时需要访问上一行的值。使用传统的for循环。注意第一条记录,因为它将有前一行

for( int i = 0; i < dt.DefaultView.Rows.Count; i++ )
{
    if( i > 0 )
    {
       // Compare with previous row using index
       if( dt.DefaultView.Rows[i]["ratio"] == dt.DefaultView.Rows[i-1]["ratio"])
       {
           dt.DefaultView.Rows[i]["Rank"] = count;
       }
      else
      {
          dt.DefaultView.Rows[i]["Rank"] = count++;
      }
    }
   else
   {
       dt.DefaultView.Rows[i]["Rank"] = count;
   } 

}
for(int i=0;i0)
{
//使用索引与上一行进行比较
if(dt.DefaultView.Rows[i][“比率”]==dt.DefaultView.Rows[i-1][“比率”])
{
dt.DefaultView.Rows[i][“Rank”]=count;
}
其他的
{
dt.DefaultView.Rows[i][“Rank”]=count++;
}
}
其他的
{
dt.DefaultView.Rows[i][“Rank”]=count;
} 
}

请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅如何帮助页面澄清这个问题。考虑增加可重复性。example@mybirthname谢谢你的回复,这里我有一组学生记录在数据表中,我想根据总数计算学生的排名。我在数据表中使用了“desc”来降低列数,以获得更高的列数。然后我循环记录以生成排名。这里我的问题是“如果总金额存在两次,那么两个总记录应该是相同的”,请澄清您的具体问题或添加其他详细信息,以突出显示您所需要的内容。正如目前所写的,很难准确地说出你在问什么。请参阅如何帮助页面澄清这个问题。考虑增加可重复性。example@mybirthname谢谢你的回复,这里我有一组学生记录在数据表中,我想根据总数计算学生的排名。我在数据表中使用了“desc”来降低列数,以获得更高的列数。然后我循环记录以生成排名。这里我的问题是“如果总金额存在两次,那么两个总记录应该是相同的”,谢谢回复。这就是我正在寻找和思考的。。。多谢了。请勾选并投票,这是我们在SO中表示感谢的方式。谢谢回复。这就是我正在寻找和思考的。。。多谢了。请把它标上记号并投上一票,这就是我们在SO中表示感谢的方式。