C# 如何检查列表长度是否大于上次?

C# 如何检查列表长度是否大于上次?,c#,C#,我有以下代码: int LRLength = LR.Count; for (int i = 0; i < LR.Count; i++) { LRLength = LR.Count; LR = merge(LR); if (LR.Count < LRLength) { LR

我有以下代码:

int LRLength = LR.Count;
            for (int i = 0; i < LR.Count; i++)
            {
                LRLength = LR.Count;
                LR = merge(LR);
                if (LR.Count < LRLength)
                {
                    LR = merge(LR);
                    if (LR.Count == LRLength)
                    {
                        break;
                    }
                }
            }
int lrllength=LR.Count;
对于(int i=0;i
这是函数merge:

private List<Lightnings_Extractor.Lightnings_Region> merge(List<Lightnings_Extractor.Lightnings_Region> Merged)
        {
            List<Lightnings_Extractor.Lightnings_Region> NewMerged = new List<Lightnings_Extractor.Lightnings_Region>();
            Lightnings_Extractor.Lightnings_Region reg;
            int dealtWith = -1;
            for (int i = 0; i < Merged.Count; i++)
            {
                if (i != dealtWith)
                {

                    reg = new Lightnings_Extractor.Lightnings_Region();

                    if (i < Merged.Count - 1)
                    {

                        if (Merged[i].end + 1 >= Merged[i + 1].start)
                        {
                            reg.start = Merged[i].start;
                            reg.end = Merged[i + 1].end;
                            NewMerged.Add(reg);
                            dealtWith = i + 1;
                        }
                        else
                        {
                            reg.start = Merged[i].start;
                            reg.end = Merged[i].end;
                            NewMerged.Add(reg);
                        }
                    }
                    else
                    {

                        reg.start = Merged[i].start;
                        reg.end = Merged[i].end;
                        NewMerged.Add(reg);

                    }
                }
            }
            return NewMerged;
        }
私有列表合并(列表合并)
{
List NewMerged=新列表();
Lightings\u提取器。Lightings\u区域注册;
int dealtWith=-1;
for(int i=0;i=合并[i+1].start)
{
reg.start=Merged[i]。开始;
reg.end=Merged[i+1]。结束;
新增(注册号);
dealtWith=i+1;
}
其他的
{
reg.start=Merged[i]。开始;
reg.end=Merged[i].end;
新增(注册号);
}
}
其他的
{
reg.start=Merged[i]。开始;
reg.end=Merged[i].end;
新增(注册号);
}
}
}
返回新合并;
}
在这个类中:lightings\u Extractor.lightings\u Region我只有两个int变量。 此函数的思想是获取一个列表并合并一致的区域

例如,一旦我调用该函数,列表LR长度为8,现在我将返回更少。例如,如果需要将两个索引合并为一个索引,那么返回的列表长度将为7。如果需要合并另一个索引,则长度将为6,依此类推

在上面的第一段代码中,我要检查的是何时停止调用函数来合并索引

如果长度为8,下一次仍然为8,则不执行任何操作以停止循环。 如果长度为8,下次为7,则再次调用该函数。 如果长度为7,则停止循环。但是如果长度是6,请继续再次调用它

直到最后的长度将与之前的长度相同

所以我尝试了这个代码,但效果不好:

int LRLength = LR.Count;
                for (int i = 0; i < LR.Count; i++)
                {
                    LRLength = LR.Count;
                    LR = merge(LR);
                    if (LR.Count < LRLength)
                    {
                        LR = merge(LR);
                        if (LR.Count == LRLength)
                        {
                            break;
                        }
                    }
                }
int lrllength=LR.Count;
对于(int i=0;i
试着对你想要完成的事情做出一些假设。下面将基本上捕获列表的原始长度以进行比较。它将至少运行一次,并一直运行,直到LRLength==LR.Count

int LRLength = LR.Count;
do{ 
    LR = merge(LR); 
} while(LR.Count != LRLength);
如果您试图运行循环,直到连续两次获得相同的计数:

int prevCount;
do{
    prevCount = LR.Count;
    LR = merge(LR); 
} while(prevCount != LR.Count);

很抱歉,这真的很让人困惑,请尝试解决这个问题。好的,我将用更多信息编辑我的问题。如果我们知道Merge()的作用,可能会有所帮助。我刚才用merge()更新了我的问题,并试图解释我应该做什么/get。等等,你想循环直到它计数==原始计数吗?还是要循环,直到连续两次获得相同的计数??