实际上,它更接近于:
ObservableCollections的RemoveAll?
可能重复:
使用LINQ删除List <T>中的对象
这是我正在使用的代码,但它不是很易读.我是否可以使用LINQ缩短下面的代码,同时仍具有相同的功能?
int index = 0;
int pos = 0;
foreach (var x in HomeViewModel.RecentPatients)
{
if (x.PID == p.PID)
pos = index;
else
index++;
}
HomeViewModel.RecentPatients.RemoveAt(pos);
Run Code Online (Sandbox Code Playgroud)
对复制关闭混淆的道歉.此问题和标记答案将允许您从可观察集合中删除扩展方法:
RemoveAll for ObservableCollections?
它不会支持from x in y语法,但它会让你这样做:
var c = new ObservableCollection<SelectableItem>();
c.Remove(x => x.IsSelected);
Run Code Online (Sandbox Code Playgroud)
但是,使用支票x.PID == p.PID和关于您的其他问题的注释...如果实际上您想要删除两个列表中的项目,这可能不是最佳选择.
该Except扩展方法会产生排除是作为一个参数提供的枚举,在你的情况下,第二列表项的项目的枚举.此方法不会改变现有的可枚举,就像大多数操作返回一个新的一样,因此您需要将其设置为新的ObservableCollection.
| 归档时间: |
|
| 查看次数: |
16281 次 |
| 最近记录: |