Raf*_*Mir 9 c# linq wpf bindinglist
在我的一个项目中,我试图从列表中删除id等于给定id的项目.
我BindingList<T>有个叫UserList.
列表具有所有方法RemoveAll().
既然我有BindingList<T>,我就这样使用它:
UserList.ToList().RemoveAll(x => x.id == ID )
Run Code Online (Sandbox Code Playgroud)
但是,我的列表包含与以前相同数量的项目.
为什么它不起作用?
vc *_* 74 16
它不起作用,因为您正在处理通过调用创建的列表的副本ToList().
BindingList<T>不支持RemoveAll():它只是一个List<T>功能,所以:
IReadOnlyList<User> usersToRemove = UserList.Where(x => (x.id == ID)).
ToList();
foreach (User user in usersToRemove)
{
UserList.Remove(user);
}
Run Code Online (Sandbox Code Playgroud)
我们在ToList()这里打电话是因为否则我们会在修改它时枚举一个集合.
| 归档时间: |
|
| 查看次数: |
12689 次 |
| 最近记录: |