Abfrage eine winforms Steuerung mit CheckedListBoxItemCollection.AsQueryable (). Provider.CreateQuery (

StackOverflow https://stackoverflow.com/questions/3587449

Frage

Ich brauche eine WinForms Kontrolle abzufragen ( CheckedListBoxControl ) ein mit CheckedListBoxItemCollection , die ich Abfrage wollen für eine bestimmte Id: , die innerhalb der ist Eigenschaft "Value" des CheckedListBoxItem .

CheckedListBoxItemCollection items = myCheckedListBoxControl.Items;

foreach(Department dep in departmentList)
{
  bool isDepExisting = items.AsQueryable().Where( the .Where clause does not exist );
  // How can I query for the current dep.Id in the departmentList and compare this   dep.Id with  every Item.Value in the CheckedListBoxControl and return a bool from the result ???   
  if(!isDepExisting)
      myCheckedListBoxControl.Items.Add( new CheckedListBoxItem(dep.id);
}

UPDATE:

IEnumberable<CheckedListBoxItem> checks = items.Cast<CheckedListBoxItem>().Where(item => item.Value.Equals(dep.InternalId));

Warum sagt Visual Studio, dass die IEnumerable oder die IEnumberable Namespace nicht gefunden werden kann? Wenn ich „var“ verwenden, anstatt dann kann ich meinen Code kompilieren. Aber der Chef in meiner Firma forbide meine verwenden var ...

War es hilfreich?

Lösung

CheckListBox.Items nur implementiert IEnumerable, nicht IEnumerable<T>. Sie erhalten die Überlastung von AsQueryable (), die IQueryable (nicht die generische) zurückgibt. Welche hat nur den Stab und OfType Erweiterungsmethoden.

Guss der Elemente von Objekt zu Abteilung zurück. Wie folgt aus:

var q = checkedListBox1.Items.Cast<Department>().AsQueryable().Where((d) => d.Id == 1);

Sie brauchen nicht AsQueryable () mehr btw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top