private bool method_3(ArrayList arrayList) { ArrayList arrayList2 = new ArrayList(); long num = 0L; bool result; while (arrayList.Count > 0) { num += 1L; if (num > 50000L) { result = false; return(result); } long num2 = (long)arrayList.Count; int num3 = 0; while ((long)num3 < num2) { SortInfo sortInfo = (SortInfo)arrayList[num3]; if (arrayList2.Count == 0) { arrayList2.Add(sortInfo); arrayList.Remove(sortInfo); break; } SortInfo sortInfo2 = (SortInfo)arrayList2[0]; SortInfo sortInfo3 = (SortInfo)arrayList2[arrayList2.Count - 1]; if (sortInfo2.GetPointInfoRleation(sortInfo) != -1 || sortInfo3.GetPointInfoRleation(sortInfo) != -1) { int pointInfoRleation = sortInfo2.GetPointInfoRleation(sortInfo); int pointInfoRleation2 = sortInfo3.GetPointInfoRleation(sortInfo); if (pointInfoRleation == 12) { sortInfo.bRightDirection = true; arrayList2.Insert(0, sortInfo); arrayList.Remove(sortInfo); break; } if (pointInfoRleation == 11) { sortInfo.bRightDirection = false; sortInfo.SwapFromWithTo(); arrayList2.Insert(0, sortInfo); arrayList.Remove(sortInfo); break; } if (pointInfoRleation2 == 21) { sortInfo.bRightDirection = true; arrayList2.Add(sortInfo); arrayList.Remove(sortInfo); break; } if (pointInfoRleation2 == 22) { sortInfo.bRightDirection = false; arrayList2.Add(sortInfo); arrayList.Remove(sortInfo); break; } } num3++; } } this.m_SectionControl.m_arrSortInfo = arrayList2; this.m_SectionControl.SortForVerAnalyse(); result = true; return(result); }