假设:
string removeRows = "";
int i = 0;
foreach (var row in userStats)
{
if (row.OrderRow.RegistrationType == "Want Removed")
{
removeRows = removeRows + i.ToString() + ",";
}
i++;
}
执行删除的Lambda语法是什么?
答案 0 :(得分:5)
据我了解,您的代码收集要删除的行的索引,并形成一个逗号分隔的字符串。它实际上并没有删除这些项目,所以我不知道你为什么要这样做。
如果userStats
为List<T>
,其中T
是您的行类型,则可以使用RemoveAll
方法实际删除与给定条件匹配的所有项目:
userStats.RemoveAll (r => r.OrderRow.RegistrationType == "Want Removed");
我认为您的代码滥用字符串,您都使用它们来收集索引和注册类型。我想知道RegistrationType
是否可以是枚举:
enum RegitrationType {
ShouldBeRemoved,
// add other types here
}
userStats.RemoveAll (r =>
r.OrderRow.RegistrationType == RegitrationType.ShouldBeRemoved);