Запрос контроля WinForms с CheckedListBoxItemcollection.asqueryable (). Provider.Createquere (
-
01-10-2019 - |
Вопрос
Мне нужно запросить контроль 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 () больше, кстати.