连续自描述数据的找出相同类型的起止编号

先来一张表

序号类别属性相同类别的连续个数
1A1
2B2
3B2
4C3
5C3
6C3
7D3
8D3
9D3
10E5
11E5
12E5
13E5
14E5
15F2
16F2
假如有一个数据序列,第一列是自然序号,第二列是一些属性值,有可能有相同连续的,第三列是对二列的描述,表示相同属性有多少个是连续的,现在的目的是找出相同的类别属性的起止序号,如下表:

类别起序号止序号个数
A111
B232
C463
D793
E10145
F15162


  List<string> hebingList = new List<string>();
            if(dataTable!=null && dataTable.Rows.Count>0)
            {
                int currentStartPosition=1;
                int currentEndPosition = 1;
                int currentSameRows = 1;
                bool isInRows=false;
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    //处理行合并
                    int x = i + 1;
                    int sameRows = dataTable.Rows[i]["rowNumOfThisUnit"].ParseTo<int>(0);
                    if (sameRows > 1 && isInRows == false) 
                    { 
                        currentStartPosition = x; 
                        isInRows = true; 
                        currentEndPosition = x + sameRows-1;
                        currentSameRows = sameRows;
                    }
                    if(x>=currentEndPosition && isInRows==true)
                    {
                        hebingList.Add(currentStartPosition+","+currentEndPosition);
                        isInRows = false;
                    }
                }
            }
            string strHeBing = JsonHelper.GetJson<List<string>>(hebingList); 
将得到类似如下数据:

["1,3","7,8","9,15","17,18"]





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值