0
我有几个列的列表中的列表创建ID的块。当我的Column1 =“AA”时,我需要为一个块创建一个ID。如果以前的块包含一个ID,我应该有ID + 1。基于字段
我有这样的事情:
Column0|Column1|
23|AA
23|AA
23|AX
23|AX
23|AX
23|AA
23|AA
23|AX
23|AA
我需要这样的:
Column0|Column1|Column2
23|AA|1
23|AA|1
23|AX|
23|AX|
23|AX|
23|AA|2
23|AA|2
23|AX|
23|AA|3
在不同的话,我想创建的ID(序列)来识别的信息块是包含Column1 = AA。
边注:从列表中的顺序已经是我所需要的人。
所以,我应该使用的foreach或循环?当我尝试应用我的想法时,我感到困惑:
(_gDataID是我的列表;列类型将包含我的AA或AX或...; SeqNumberOfTempCycle是我想用“ID块”设置的列)
int lastseq = 0;
for (int i = 0; i < _gDataID.Count; i++)
{
if (_gDataID[i].Type.ToString() == "AA")
{
//Does the previous columns has a seq?
if (_gDataID[i-1].SeqNumberOfTempCycle.ToString() == null)
{
_gDataID[i].SeqNumberOfTempCycle = lastseq + 1;
lastseq = lastseq + 1;
}
else
{
_gDataID[i].SeqNumberOfTempCycle = lastseq;
}
}
}
正如您可能注意到的,我的想法并不奏效。首先,我不能这样做:
_gDataID[i].SeqNumberOfTempCycle = lastseq + 1;
而我的for循环没有循环和正确设置字段。
你可以遍历列表并保持串的电流seqnumber(如“AA”),并在每次遇到新的块时,你增加了当前seqnumber对应字符串。 – user2971569