Jak zgrabnie zmienić właściwość obiektu we wszystkich kolekcjach.

0

Jest sobie taka klasa

class MyClass
{
    public bool MyValue {get;set;}
}

I mam wiele obiektów tej klasy w kilku kolekcjach. Jeśli teraz user zmieni MyValue na true w jednym obiekcie chciałbym aby we wszystkich innych zmieniło się na false. Da się to zrobić bez konieczności foreachowana po wszystkich kolekcjach?

1

Ja bym to rozwiązał tak, że stworzył bym w tej klasie pole np ID, któro było by unikalne dla każdego obiektu oraz pole statyczne activeID, które mówiło by, które pole jest aktualnie aktywne. Wtedy wystarczy, że zmienisz wartość activeID

2

O ile mówimy o klasach to nie trzeba tworzyć tego dodatkowego pola ID. Wystarczy do tego statycznego pola zapisywać referencję i przy sprawdzaniu użyć object.ReferenceEquals.

Co nie zmienia faktu, że trzymanie takiego globalnego stanu w polu statycznym jest po prostu złe. Będzie lepiej jak gdzieś wyżej wydzielisz to sprawdzanie.

0

Rozumiem, zrobię z tą referencją.

1 użytkowników online, w tym zalogowanych: 0, gości: 1