我正在努力了解Lambda运营商......这就是我到目前为止所做的事情。
我有一个名为List<Record>
的{{1}}。我想从record_list
属性为Record
的列表中删除Record.UserName
。
USER1
显然我误解了一些事情,但我认为我很接近。
我得到的错误是:
无法从
record_list.Remove(record_list.Where(r = r.UserName.ToString() == "USER1"))
转换为System.Collections.Generic.IEnumerable<Client_SCM_2.Record>
提前感谢您的帮助!
答案 0 :(得分:2)
首先尝试获取记录,然后将其从列表中删除(如果存在)
var record = record_list.FirstOrDefault(r => r.UserName.ToString() == "USER1");
if(record != null) {
record_list.Remove(record);
}
答案 1 :(得分:1)
下面的代码将返回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");
答案 2 :(得分:0)
record_list.RemoveRange(record_list.Where(r => r.UserName.ToString() == "USER1"))
我知道你需要RemoveRange 另外,你错过了一个&gt;对于Lambda。
希望这有帮助