Wie Linq/Lambda mit ObservableCollection<T>
Ich habe den folgenden code, der einfach Schleifen Suche nach einem Zustand und setzt alle Spiele in eine neue Sammlung:
ObservableCollection<Device> allDevices = GetAllDevices();
ObservableCollection<Device> matchingDevices = new ObservableCollection<Device>();
foreach (Device device in allDevices )
{
if (device.ID != 5)
matchingDevices .Add(device);
}
Ziemlich einfach. Ich habe versucht, zu konvertieren, das in eine Lambda-Anweisung in Verbindung mit der Linq-extension-Methoden, aber es fehlschlägt:
var matchingDevices = (ObservableCollection<Device>)allDevices.Where(d => d.ID != 5);
Dies schlägt fehl, da nicht die Besetzung. Ich habe versucht, anfügen .ToList(), aber das gleiche problem aufgetreten. Es klingt wie diese sollte einfach sein, aber ich kann die Antwort nicht finden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ObservableCollection hat einen Konstruktor, die eine IEnumerable-und das ist, was Ihre Where-Klausel geben Sie.