2 Stimmen

Bessere Möglichkeit, Listen zu durchsuchen als mit foreach

list vclAsset<FullAsset>
list callsigns<string>

foreach(FullAsset fa in vclAsset)
{
    if (callsigns.contains(fa.asset.callsign))
    {
         //do something
    }

}

Gibt es einen eleganteren Weg, um das oben genannte zu tun? Ein FullAsset-Objekt enthält ein Asset-Objekt, das wiederum eine Zeichenkette "Callsign" enthält. Jedes Rufzeichen ist eindeutig, so dass meine Liste Rufzeichen nur ein Exemplar jeder Zeichenfolge enthält und keine zwei FullAsset-Objekte eine Asset.callsign-Variable gemeinsam nutzen.

Kurz gesagt möchte ich alle FullAssets ziehen, die ein bestimmtes Rufzeichen haben, aber mit einem foreach scheint ungeschickt (angesichts der Tatsache, dass die Anzahl der FullAssets, die in der genannten Liste enthalten sein könnte potenziell keine Obergrenze hat).

0voto

Jason Punkte 3566

Sie können dazu auch die Funktion Join verwenden.

var sortedList = vclAsset.Join(callsigns,
    x => x.asset.callsign, x => x,
    x, y => x);

Dies ist die Liste der vclAssets, die das angegebene Rufzeichen haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X