Consulta de un control winforms con CheckedListBoxItemCollection.AsQueryable (). Provider.CreateQuery (

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

Pregunta

Necesito para consultar un control winforms ( CheckedListBoxControl ) que tiene un CheckedListBoxItemCollection que quiero consulta para un cierto Id que está dentro de la propiedad "Valor" de la 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);
}

ACTUALIZACIÓN:

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

¿Por qué dice que el Visual Studio IEnumerable o el espacio de nombres IEnumberable de que no se pueden encontrar? Cuando uso "var" entonces puedo compilar mi código. Pero el jefe de mi empresa Forbide mi usar var ...

¿Fue útil?

Solución

CheckListBox.Items sólo se implementa IEnumerable, no IEnumerable<T>. Se obtiene la sobrecarga de AsQueryable () que devuelve IQueryable (no el genérico). Que sólo tiene el moldeada y métodos de extensión OfType.

Reparto los artículos de nuevo desde el objeto al Departamento. De esta manera:

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

No es necesario AsQueryable () nunca más cierto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top