public static void RemoveLinesNotInRect(Rect rect, params SortedDictionary <double, FormLineList>[] lines) { foreach (SortedDictionary <double, FormLineList> lineDic in lines) { for (int j = 0; j < lineDic.Count; j++) { FormLineList lineList = lineDic[lineDic.Keys.ToArray()[j]]; for (int i = 0; i < lineList.Count;) { if (!rect.ContainFormLine(lineList[i])) { lineList.RemoveAt(i); } else { i++; } } } GenericMethods <double, FormLineList> .RemoveZeroAmountValueItems(lineDic); } }