Q:

How do i check if the List length is bigger than the last time?

I have this code:
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;
                    }
                }
            }

And this is the function 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;
        }

In this class: Lightnings_Extractor.Lightnings_Region I have only two int variables.
The idea in this function is to get a List and merge areas that are congruent.
For example once im calling the function and the List LR Length is 8 now I will get it back less. For example if it needed to merge two indexs to one then the List I will get in return the Length will be 7. If it will need to merge another indexs then the Length will be 6 and so on.
What I want to check on the first code above is when I should stop calling the function to merge indexs. 
If the length was 8 and the next time it's still 8 do nothing stop the loop.
If the length is 8 and the next time it's 7 then call the function again.
If the length is 7 stop the loop . But if the length is 6 keep calling it once again.
Untill the last length will be the same as the length before !!!
So I tried this code but it's not working good:
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;
                        }
                    }
                }

A:

Trying to make some assumptions as to what you're trying to accomplish. The following will basically capture the original length of the list for comparison. It will run at least once, and keep running until the LRLength == LR.Count  
int LRLength = LR.Count;
do{ 
    LR = merge(LR); 
} while(LR.Count != LRLength);

If you were trying to run the loop until you got the same count twice in a row:
int prevCount;
do{
    prevCount = LR.Count;
    LR = merge(LR); 
} while(prevCount != LR.Count);

