/// <summary> /// Vertailee eghdokkaita. Järjestää: Puolue->Äänimäärä->Koko nimi /// </summary> /// <param name="other"></param> public int CompareTo(Ehdokas other) { int result = Puolue.CompareTo(other.Puolue); if (result == 0) { result = other.Aanimaara.CompareTo(Aanimaara); } if (result == 0) { result = fullName().CompareTo(other.fullName()); } return(result); }
public int CompareTo(Puolue other) { if (other == null) { return(1); } if (this.TotalVouteCount > other.TotalVouteCount) { return(-1); } else if (this.TotalVouteCount < other.TotalVouteCount) { return(1); } return(0); }
static void Main(string[] args) { MysqlConn mysql = new MysqlConn(); //mysql.CreateTable(); //Luodaan tyhjä lista ehdokkaista List <Ehdokas> ehdokkaat = new List <Ehdokas>(); //Ladataan tiedosto jossa ehdokkaat StreamReader sr = new StreamReader(@"ehdokkaat.txt", Encoding.UTF8); //Luodaan tyhjä lista puolueista Dictionary <string, Puolue> puolueet = new Dictionary <string, Puolue>(); // erotimerkki jolla splitataan rivi string sep = "\t"; Ehdokas tempEhd; //Käydään tiedosto läpi rivi kerrallaan while (sr.Peek() >= 0) { string str; string[] strArr; str = sr.ReadLine(); strArr = str.Split(sep.ToCharArray()); if (puolueet.ContainsKey(strArr[2]) == false) { //Luodaan puolue ja lisätään se puoluelistaan Puolue puolue = new Puolue(strArr[2]); puolueet.Add(strArr[2], puolue); } //Luodaan ehdokas Ehdokas ehdokas = new Ehdokas(strArr[0], strArr[1], strArr[2], int.Parse(strArr[3])); //Kasvatetaan puolueen kokonaisäänimäärää puolueet[strArr[2]].TotalVouteCount += int.Parse(strArr[3]); //Lisätään ehdokas puolueen listalle puolueet[strArr[2]].ehdokkaat.Add(ehdokas); //Lisätään ehdokas paikalliseen ehdokaslistaan ehdokkaat.Add(ehdokas); tempEhd = ehdokas; //ehdokas.Upsert(mysql); } sr.Close(); //Generoidaan ehdokkaille vertailuluvut foreach (KeyValuePair <string, Puolue> item in puolueet.OrderByDescending(x => x.Value.TotalVouteCount)) { item.Value.jaaVertailuluvut(); } //Järjestetään ehdokkaat vertailuluvun mukaan laskevaanjärjestykseen var comparer = new SortVertailulukuDescendingHelper(); ehdokkaat.Sort(comparer); //Napataan läpi päässeet ehdokkaat List <Ehdokas> valtuusto = ehdokkaat.GetRange(0, 51); //Järjestää ehdokkaat puolueittain + äänimäärän ja nimen mukaan valtuusto.Sort(); //Tulostetaan valtuusto for (int i = 0; i < valtuusto.Count; i++) { //valtuusto[i].Upsert(mysql); Console.WriteLine("{0}: {1}", (i + 1), valtuusto[i].ToString()); } //Tallennetaan valtuusto JSON tiedostoon tallennaEhdokkaat(valtuusto); Console.ReadLine(); }