日期:2014-05-18  浏览次数:21088 次

请教一问题:循环一数据集改变某列相当的值开始、结束标志
有段数据如下:

-----------------------
编号 是否开始 是否结束
001  
001  
002  
002  
002  
003  
-----------------------
需要转变成:(转变规则:编号相当的设置开始、结束标志)如下图
-----------------------
编号 是否开始 是否结束
001 true 
001 true  
002 true
002  
002
002 true
003 true true
-----------------------

这不是什么面试题,在我开发时用到。希望能有个很好的方法,谢谢。

这个数据集是DataTable 或则 数据对象列表List
可以在以下两方法内写代码,代码不需调试。能表达意思就行了。
---------------------------------------------------
1、
foreach(DataRow dr in Dt)
{
  ...
}

2、
foreach(Model model in ListModel)
{
  字段名就是model属性
}
---------------------------------------------------

------解决方案--------------------
DataRow dr1=NULL; 

foreach(DataRow dr in Dt) 

if (dr1==null) 
 {
dr1=dr;
dr[是否开始]=true;
continue;
}
if ( dr1[编号]!=dr[编号])
{
dr1[ 是否结束]=true;
dr[是否开始]=true;
dr1=dr;
}
else
dr1=dr;

}