private ItemSet AprioriGenerate(ItemSet li, int k, double support) { ItemSet curList = null; ItemSet durList = null; ItemSet candi = null; ItemSet result = new ItemSet(); for (int i = 0; i < li.Count; i++) { for (int j = 0; j < li.Count; j++) { bool flag = true; curList = (ItemSet)li.arr[i]; durList = (ItemSet)li.arr[j]; for (int n = 2; n < k; n++) { if (((DataItem)curList.arr[n - 2]).Id == ((DataItem)durList.arr[n - 2]).Id) { flag = true; } else { flag = false; break; } } if (flag && ((DataItem)curList.arr[k - 1]).Id < ((DataItem)durList.arr[k - 1]).Id) { flag = true; } else { flag = false; } if (flag) { candi = new ItemSet(); for (int m = 0; m < k; m++) { candi.Add((DataItem)durList.arr[m]); } candi.Add((DataItem)curList.arr[k - 1]); if (HasInFrequentSubset(candi, li, k)) { candi.Clear(); } else { result.Add(candi); } } } } return(result); }