/// <summary> /// Csak is a delegate miatt lett létrehozva a feladat szerint. /// </summary> /// <param name="id"></param> /// <returns></returns> internal Versenyzo AlertRemoval(string id) { VersenyzoKezelo.ListElement currentElement = _FirstElement; // Vesszük az első elemet // Addig megyünk amíg a jelenlegi elemünk nem null, és az érték nem egyezik a megadottal. while (currentElement != null) { VersenyBrigad brigad = currentElement.ElementValue; VersenyBrigad.ListElement element = brigad.FirstElement; while (element != null) { Versenyzo v2 = element.ElementValue; if (v2.VersenyzoAzonosito == id) { return(v2); } if (element.LastElement) { break; } element = element.NextElement; } currentElement = currentElement.NextElement; // Vesszük a következő elemet } return(null); }
/// <summary> /// Ezt a methodot úgy írtam meg, hogy az összes brigádot végig nézi egy adott versenyzőért, és ha megtalálja törli. /// Nem feltétlenül szükséges a használata, csak előre megcsináltam ha esetleg kellene. /// </summary> /// <param name="v"></param> public bool VersenyzoTorol(string id) { VersenyzoKezelo.ListElement currentElement = _FirstElement; // Vesszük az első elemet // Addig megyünk amíg a jelenlegi elemünk nem null, és az érték nem egyezik a megadottal. while (currentElement != null) { VersenyBrigad brigad = currentElement.ElementValue; VersenyBrigad.ListElement element = brigad.FirstElement; while (element != null) { Versenyzo v2 = element.ElementValue; if (v2.VersenyzoAzonosito == id) { brigad.Remove(v2); if (brigad.FirstElement == null) { VersenyBrigadDelete(brigad); } else { // Ha véletlenül az első elem kerülne törlésre frissítsük az kulcs értéket a legkisebbre. // Így megtartjuk, hogy a brigádok mindíg a legkisebb azonosítószámmal vannak feltüntetve. if (brigad.FirstElement != null) { this._FirstElement.Key = brigad.FirstElement.Key; } } return(true); } if (element.LastElement) { break; } element = element.NextElement; } currentElement = currentElement.NextElement; // Vesszük a következő elemet } return(false); }