Запрос контроля WinForms с CheckedListBoxItemcollection.asqueryable (). Provider.Createquere (

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

Вопрос

Мне нужно запросить контроль WinForms (Checkedlistboxcontrol.) иметь CheckedListboxiTemcollection. который я хочу запросить на определенный Идентификатор это в рамках свойства «стоимость» 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);
}

ОБНОВИТЬ:

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

Почему говорит Visual Studio, что IENumerable или INENUMPOURABемое пространство имен не может быть найдено? Когда я использую «var» вместо этого, я могу скомпилировать свой код. Но босс в моей компании бросил мой пользоваться вар ...

Это было полезно?

Решение

CheckListbox.items только реализует IENumerable, а не IEnumerable<T>. Отказ Вы получаете перегрузку Asqueryable (), которая возвращает iQueryable (не общий). Что только имеет литье и методы расширения OFTYPE.

Отложите предметы обратно из объекта к отделению. Так:

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

Вам не нужно ASCHERYable () больше, кстати.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top