这是我的代码:
public class Person
{
public int age;
public int grade;
public string name;
}
List<Person> _list = new List<Person>();
// .... add lots of items
var personToRemove = new Person {age = 99, grade = 7, };
Run Code Online (Sandbox Code Playgroud)
如何编写一个命令,从_list所有人中删除具有相同age和grade值的所有人personToRemove.
您必须使用.RemoveAll()谓词来删除personToRemove人物对象中具有匹配详细信息的所有人.
所以你的查询将是.
int totalRemoved = _list.RemoveAll(x => x.age == personToRemove.age && x.grade == personToRemove.grade);
Run Code Online (Sandbox Code Playgroud)
输入:
_list.Add(new Person { age = 99, grade = 7 });
_list.Add(new Person { age = 87, grade = 7 });
_list.Add(new Person { age = 57, grade = 8 });
Run Code Online (Sandbox Code Playgroud)
输出:
编辑:
您还可以使用传统循环以优雅的方式从人员列表中删除匹配人员.
for (int i = _list.Count - 1; i >= 0; i--)
{
if (_list[i].age == personToRemove.age && _list[i].grade == personToRemove.grade)
{
_list.RemoveAt(i);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |