public List <List <String> > BestimmeSchuelerDieNichtInAndererListeEnthaltenSind(List <List <String> > AndereSchuelerListe) { // Grundaufbau der zu vergleichenden Listen : JGKZ - Klasse - Name - Vorname List <List <String> > returnList = new List <List <String> > { }; List <List <String> > ArbeitsListe = new List <List <String> > { }; foreach (List <String> Eintrag in SchuelerListe) { ArbeitsListe = SucheListenEintragAnhandSuchEintrag(Eintrag, AndereSchuelerListe); if (ArbeitsListe.Count < 0) { // Wenn man das so macht hat man am Ende in der Liste unterschiedlich lange Sublisten. Dann gibts immer IndexOutOfBoundsException. Garnicht geil... // ListeDerSchuelerDieNichtInAndererListeEnthaltenSind.Add(Eintrag); while (Eintrag.Count <= SchuelerListe[0].Count) { Eintrag.Add("n.n"); } returnList.Add(Eintrag); } } return(returnList); }
public List <List <String> > BestimmeSchuelerMitVeraenderungenInAndererSchuelerListe(List <List <String> > AndereSchuelerListe) { // Grundaufbau der zu vergleichenden Listen : JGKZ - Klasse - Name - Vorname List <List <String> > ListeDerSchuelerDieNichtInAndererListeEnthaltenSind; List <List <String> > ListeDerSchuelerMitVeraenderungen = new List <List <String> > { }; List <String> IDListeSchuelerDieNichtInAndererListeEnthaltenSind = new List <String> { }; ListeDerSchuelerDieNichtInAndererListeEnthaltenSind = BestimmeSchuelerDieNichtInAndererListeEnthaltenSind(AndereSchuelerListe); foreach (List <String> Eintrag in ListeDerSchuelerDieNichtInAndererListeEnthaltenSind) { IDListeSchuelerDieNichtInAndererListeEnthaltenSind.Add(BildeSuchName(Eintrag)); } foreach (List <String> Eintrag in SchuelerListe) { String VergleichsName = BildeSuchName(Eintrag); if (!IDListeSchuelerDieNichtInAndererListeEnthaltenSind.Contains(VergleichsName)) { foreach (List <String> AndererEintrag in AndereSchuelerListe) { String AndererVergleichsName = BildeSuchName(AndererEintrag); // bewusst unscharfer Test nötig (z.B. 5 Vornamen !) if (VergleichsName.Contains(AndererVergleichsName) || AndererVergleichsName.Contains(VergleichsName)) { if (!(Eintrag[0].Equals(AndererEintrag[0]) && Eintrag[1].Equals(AndererEintrag[1]))) { while (Eintrag.Count <= SchuelerListe[0].Count) { Eintrag.Add("n.n"); } ListeDerSchuelerMitVeraenderungen.Add(Eintrag); } } } } } return(ListeDerSchuelerMitVeraenderungen); }