public List <TestDataSet> Main() { IDataProvider dataProvider = new MockDataProvider(); List <GetTestData_Result> tempData = new List <GetTestData_Result>(); List <TestDataSet> testData = new List <TestDataSet>(); List <IDictionary <string, double> > dictionaries = new List <IDictionary <string, double> >(); using (FRDBEntities db = new FRDBEntities()) { tempData = db.GetTestData().ToList <GetTestData_Result>(); } Classifier <string> classifier = new Classifier <string>(); var sampleData = dataProvider.GetTrainingData() as List <InformationModel <string> >; classifier.Teach(sampleData); int temp = tempData.FirstOrDefault <GetTestData_Result>().UserID; List <GetTestData_Result> list = new List <GetTestData_Result>(); int lenth = tempData.Count; int count = 1; foreach (var item in tempData) { if (temp == item.UserID) { IDictionary <string, double> dict = classifier.Classify(new List <string>() { item.skill, BinData(item.skill, item.skillrate), item.interest, BinData(item.interest, item.interestrate) }); dictionaries.Add(dict); if (count == lenth) { foreach (var d in add(dictionaries)) { testData.Add(new TestDataSet { uid = temp, major = d.Key, probabilty = d.Value }); } } } else { foreach (var d in add(dictionaries)) { testData.Add(new TestDataSet { uid = temp, major = d.Key, probabilty = d.Value }); } temp = item.UserID; dictionaries.Clear(); IDictionary <string, double> dict = classifier.Classify(new List <string>() { item.skill, BinData(item.skill, item.skillrate), item.interest, BinData(item.interest, item.interestrate) }); dictionaries.Add(dict); } count++; } return(testData); }