Nach Inhalten (Value) aus Dictionary suchen

CopWorker

Erfahrenes Mitglied
Hallo,
ich benutze eine Dictionary:
C#:
Dictionary<int, tConvBlw> dicConvBlw
Das Value ist eine Struct:
C#:
public struct tConvBlw
{
    public tConvBlwHeader sHeader;
    public tConvBlwCtrl sCtrl;
}

public struct tConvBlwHeader
{
     public int iProcState;
     public int iStateError;
}

Nun will ich wissen ob bei einem Key, das Value einen Wert in sHeader.iProcState == 5 aufweist.

Ich denke da an die Funktion bei List<> Klassen.
Da gibt es die .FindIndex Methode um dies zu ermitteln.

gibt es was vergleichbares bei Dictionary?
Ober muss ich mit einer foreach Schleife durch alle Einträge browsen?

Vielen Dank im Voraus.
Gruß von CopWorker
 
Hab ich nicht verstanden.
In einem Dictionary ist jeder Key eineindeutig.
Heisst: Wenn du mit einem Key ins Wörterbuch steigst, bekommst du eh nur ein einziges Value zurück (in deinem Fall die verschachtelte Struct). Dann musst du ja nur noch prüfen, ob es den Wert in iProcState hat.

Oder willst du mit dem Wert "5" nach dem passenden Key/Value-Paar suchen?
 
mit Linq
C#:
KeyValuePair<int, tConvBlw> kvp = dicConvBlw.FirstOrDefault(x => x.Value.sHeader.iProcState == 5);
problem ist, KeyValuePair ist ein struct (sprich es wird NICHT null geliefert sollte es kein passendes Ergebnis geben), um zu prüfen ob jetzt wirklich ein gültiges Objekt gefunden wurde ev. dann noch prüfen das Key ungleich 0 ist
 
Hallo Spyke,
sorry für die verspätete Reaktion meinerseits.
Bin gerade erst aus meinem Urlaub zurück.
Den Lösungsansatz werde ich gleich mal testen.
Vielen Dank.
Gruß CopWorker
 

Neue Beiträge

Zurück