我有以下列表和课程:

List<MyClass> MyList

public class MyClass
{
    public int id { get; set; }
    public bool checked { get; set; }
}


我也有两个变量:

int idToFind = 1234;
bool newcheckedvalue = true;


我需要做的是搜索列表,然后找到ID等于idToFind值的MyClass对象。一旦将对象包含在列表中,我便想将类中checked属性的值更改为newcheckedvalue值。

LINQ似乎是解决此问题的方法,我只是无法正确表达该表达式。我可以在单个LINQ表达式中执行此操作吗?

最佳答案

LINQ用于查询集合,而不用于修改。您可以找到类似的对象:

var item = MyList.FirstOrDefault(r=> r.id == idtoFind && r.checked == newcheckedvalue);


要仅基于ID查找项目,您可以执行以下操作:

var item = MyList.FirstOrDefault(r=> r.id == idtoFind);


稍后您可以设置/修改其属性。

//Make sure to check against Null, as if item is not found FirstOrDefault will return null
item.checked = newcheckedvalue; //or any other value

10-08 01:40