使用linq设置列表值

lok*_*wal 0 linq class c#-3.0

嗨,我想在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属性

Xar*_*uth 7

你可以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().