3 Stimmen

Erzeugen Sie ein Array von Eigenschaftswerten aus einer Liste basierend auf einer Bedingung.

Ich habe diese Seite kürzlich verwendet, um den Code zum Extrahieren eines Arrays von Eigenschaftswerten aus einer Liste von Objekten zu erhalten (Ich habe immer wieder gesucht und kann den Originalbeitrag oder Hilfe zum Update nicht finden :()

Dies ist das Ergebnis:

qtyArray.AddRange(plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0).ToArray());

Das Problem ist, dass ich andere Eigenschaften in parallelen Arrays ausgebe, um sie an eine Datenquelle zu übergeben, aber ich würde es vorziehen, falsche 'aktive' Eigenschaften zu ignorieren. Für alle Arrays etwas Ähnliches wie oben tun, aber nur dort, wo c.active == true:

plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0 **WHERE c.active**)

Kann mir jemand helfen?

3voto

Ole Tolshave Punkte 281

Was ist mit dem hier:

plan.Components.Where(c => c.active).Select (c => c.qty.HasValue ? (int)c.qty.Value : 0 ) 

Es sollte das erforderliche Filtern durchführen.

0voto

TBohnen.jnr Punkte 5057
plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0 && (c.active == null ? false : c.active));

Beachten Sie jedoch, dass davon ausgegangen wird, dass 'active' falsch ist, wenn 'active' null ist.

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