我在这里遇到麻烦.我有一个可观察的集合,如果它符合某个标准,我想删除其中的一些东西.
这是代码:
foreach (Record record in SwearJarController.Records)
{
if (record.Word == "Hi")
{
SwearJarController.Records.Remove(record);
Datastore.DB.Records.DeleteOnSubmit(record);
}
}
Run Code Online (Sandbox Code Playgroud)
记录是集合的名称,记录是类.显然,它在'foreach'部分感到困惑.
我该怎么办?
谢谢!
您无法修改要枚举的集合.你必须做一个ToArray()或ToList()在你的foreach:
foreach (Record record in SwearJarController.Records.ToArray())
{
if (record.Word == "Hi")
{
SwearJarController.Records.Remove(record);
Datastore.DB.Records.DeleteOnSubmit(record);
}
}
Run Code Online (Sandbox Code Playgroud)
清理版本:
foreach (Record record in SwearJarController.Records
.Where(x => String.Equals(x.Word, "Hi")
.ToArray())
{
SwearJarController.Records.Remove(record);
Datastore.DB.Records.DeleteOnSubmit(record);
}
Run Code Online (Sandbox Code Playgroud)
注意:您应该真正使用String.Equals(...)和使用StringComparison枚举.我不确定您的比较是否是区分大小写和/或序数/当前文化/不变量文化.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |