如何使用Lambda运算符在具有特定属性的列表中查找对象
本文关键字:属性 列表 对象 查找 Lambda 何使用 运算符 | 更新日期: 2023-09-27 18:11:45
我正在努力理解Lambda运算符。。。这是我目前所掌握的。
我有一个名为record_list
的List<Record>
。我想从具有USER1
的Record.UserName
属性的列表中删除Record
。
record_list.Remove(record_list.Where(r = r.UserName.ToString() == "USER1"))
显然我误解了什么,但我觉得我很接近。
我得到的错误是:
无法从
System.Collections.Generic.IEnumerable<Client_SCM_2.Record>
转换为Client_SCM_2.Record
提前感谢您的帮助!
如果存在,请先尝试获取记录,然后将其从列表中删除
var record = record_list.FirstOrDefault(r => r.UserName.ToString() == "USER1");
if(record != null) {
record_list.Remove(record);
}
以下代码将返回IEnumerable
var User1List = record_list.Where(x => x.UserName.ToString() == "USER1"));
要获取对象,请使用First((或FirstOrDefault((
然后删除记录
var recordToBeDeleted = User1List.FirstOrDefault();
if(recordToBeDeleted != null) //null means no record found
{
record_list.Remove(recordToBeDeleted )
}
如果要删除所有与谓词匹配的记录,请使用RemoveAll
record_list.RemoveAll(x => x.UserName.ToString() == "USER1");
record_list.RemoveRange(record_list.Where(r => r.UserName.ToString() == "USER1"))
我觉得你需要RemoveRange此外,您还错过了Lambda的a>。
希望这能帮助