如何从 Windows 表单中的列表对象中删除项目?
How to delete item from List Object in Windows Forms?
我在列表对象 (objListEmp) 中有一个员工列表,如下所示。
Dinesh
Upendra
Chandrakanth(Deleted)
我现在的问题是,我想在 windows 应用程序的 Combox 中显示处于活动模式的员工,即
Dinesh
UPendra
我将数据绑定到 ComboBox 的代码是
if (objListEmp != null)
{
cmbAssignedSelector.DataSource = new BindingSource(objListEmp, null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
我试过如下图
if (objListEmp != null)
{
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>x.Value.Split('(').ToString()!="InActive").ToList(), null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
您可以使用 where 子句和 mentions 谓词,它只会采用活跃的员工(或者您可以根据您的要求使用任何其他自定义条件。)
objListEmp = objListEmp.Where(x=>!x.Inactive).ToList();
你也可以在这种情况下比较字符串。
objListEmp = objListEmp.Where(x=>x.Status!=="InActive").ToList();
更改此行:
cmbAssignedSelector.DataSource = new BindingSource(objListEmp, null);
到
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>x.Isactive).ToList(), null);
如果 IsActive 字段是字符串并且您将 bool 值保存在 'True' 字段中,您需要像这样强制转换
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>(bool)x.Isactive).ToList(), null);
如果您将 'IsActive ' 保存在字段中,您只需要像这样与字符串进行比较:
objListEmp.Where(x=>x.Isactive.ToLower()="isactive").ToList()
if (objListEmp != null)
{
// To remove Deleted user from list
var sorted = from employee in objListEmp
where !employee.Value.Contains("Deleted")
select employee;
cmbAssignedSelector.DataSource = new BindingSource(sorted, null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
输出:
Dinesh
Upendra
我在列表对象 (objListEmp) 中有一个员工列表,如下所示。
Dinesh
Upendra
Chandrakanth(Deleted)
我现在的问题是,我想在 windows 应用程序的 Combox 中显示处于活动模式的员工,即
Dinesh
UPendra
我将数据绑定到 ComboBox 的代码是
if (objListEmp != null)
{
cmbAssignedSelector.DataSource = new BindingSource(objListEmp, null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
我试过如下图
if (objListEmp != null)
{
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>x.Value.Split('(').ToString()!="InActive").ToList(), null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
您可以使用 where 子句和 mentions 谓词,它只会采用活跃的员工(或者您可以根据您的要求使用任何其他自定义条件。)
objListEmp = objListEmp.Where(x=>!x.Inactive).ToList();
你也可以在这种情况下比较字符串。
objListEmp = objListEmp.Where(x=>x.Status!=="InActive").ToList();
更改此行:
cmbAssignedSelector.DataSource = new BindingSource(objListEmp, null);
到
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>x.Isactive).ToList(), null);
如果 IsActive 字段是字符串并且您将 bool 值保存在 'True' 字段中,您需要像这样强制转换
cmbAssignedSelector.DataSource = new BindingSource(objListEmp.Where(x=>(bool)x.Isactive).ToList(), null);
如果您将 'IsActive ' 保存在字段中,您只需要像这样与字符串进行比较:
objListEmp.Where(x=>x.Isactive.ToLower()="isactive").ToList()
if (objListEmp != null)
{
// To remove Deleted user from list
var sorted = from employee in objListEmp
where !employee.Value.Contains("Deleted")
select employee;
cmbAssignedSelector.DataSource = new BindingSource(sorted, null);
cmbAssignedSelector.DisplayMember = "Value";
cmbAssignedSelector.ValueMember = "Key";
}
else
{
cmbAssignedSelector.SelectedIndex = 0;
}
输出:
Dinesh
Upendra