public void RecursiveTree(DataTable tb, Node XML, ArrayList arr_GainRatio) { ArrayList arr_GainRatio1 = new ArrayList();; GainRatio GR; for (int i = 0; i < arr_GainRatio.Count; i++) { GR = new GainRatio(this.GainRation(((GainRatio)arr_GainRatio[i]).at), ((GainRatio)arr_GainRatio[i]).at); arr_GainRatio1.Add(GR); } for (int i = 0; i < arr_GainRatio.Count - 1; i++) { for (int j = i + 1; j < arr_GainRatio.Count; j++) { if (((GainRatio)arr_GainRatio[j]).value > ((GainRatio)arr_GainRatio[i]).value) { GainRatio temp = (GainRatio)arr_GainRatio[i]; arr_GainRatio[i] = arr_GainRatio[j]; arr_GainRatio[j] = temp; } } } if (arr_GainRatio.Count > 0) { for (int i = 0; i < arr_GainRatio.Count; i++) { tb_Mau.DefaultView.RowFilter = "tinhhieuqua='có' and " + ((GainRatio)arr_GainRatio[0]).at.AttributeName + "='" + ((GainRatio)arr_GainRatio[0]).at.values[i] + "'"; double C = tb_Mau.DefaultView.ToTable().Rows.Count; tb_Mau.DefaultView.RowFilter = "tinhhieuqua='không' and " + ((GainRatio)arr_GainRatio[0]).at.AttributeName + "='" + ((GainRatio)arr_GainRatio[0]).at.values[i] + "'"; double K = tb_Mau.DefaultView.ToTable().Rows.Count; DataTable tb1 = tb_Mau.DefaultView.ToTable(); RecursiveTree(tb1, node_child, arr_GainRatio1); arr_GainRatio1.RemoveAt(0); } } }
public ArrayList GetGainRatio(Attribute[] attributes) { ArrayList arr_GainRatio = new ArrayList();; for (int i = 0; i < attributes.Length; i++) { GainRatio GR = new GainRatio(this.GainRation(attributes[i]), attributes[i]); arr_GainRatio.Add(GR); } for (int i = 0; i < arr_GainRatio.Count - 1; i++) { for (int j = i + 1; j < arr_GainRatio.Count; j++) { if (((GainRatio)arr_GainRatio[j]).value > ((GainRatio)arr_GainRatio[i]).value) { GainRatio temp = (GainRatio)arr_GainRatio[i]; arr_GainRatio[i] = arr_GainRatio[j]; arr_GainRatio[j] = temp; } } } return(arr_GainRatio); }