嗨,我想在where子句中设置与给定条件匹配的对象列表中的值.是否可能?其他解决方法是使用where子句获取对象列表,然后使用for或fore循环迭代并更新值.
listOfRequestAssigned.Where(x => x.RequestedNumber == CurrentRequest);
Run Code Online (Sandbox Code Playgroud)
我有列表listOfRequestAssigned对象,并希望更新符合我的搜索条件的对象的一些属性.
class Request
{
bool _requestCompleted;
int _requestedNumber;
public int RequestedNumber
{
get { return _requestedNumber; }
set { _requestedNumber = value; }
}
public bool RequestCompleted
{
get { return _requestCompleted; }
set { _requestCompleted = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我想更新使用Linq匹配条件的所有对象的RequestCompleted属性
你可以ForEach在Linq 使用
listOfRequestAssigned.Where(x => x.RequestedNumber == CurrentRequest).ToList().ForEach(x => x.RequestCompleted = true);
Run Code Online (Sandbox Code Playgroud)
如果你有多个更新要做,
listOfRequestAssigned.Where(x => x.RequestedNumber == CurrentRequest).ToList().ForEach(x => { x.RequestCompleted = true; x.OtherProperty = value; } );
Run Code Online (Sandbox Code Playgroud)
Where(...)给你一个查询,而不是a Request或a List<Request>.使用FirstOrDefault(),如果你想拥有一个(或0)的结果,或者ToList()如果你想有至极,你可以使用结果列表ForEach().