gpt4 book ai didi

LINQ - 更新 where 子句中的字段

转载 作者:行者123 更新时间:2023-12-03 18:33:17 25 4
gpt4 key购买 nike

我的对象层次结构是这样的:

class Detail
{
public List<Row> Rows { get; set; }
}

class Row
{
public List<Column> Columns { get; set; }
}

class Column
{
public string Name { get; set; }
public bool IsUpdated { get; set; }
}

我想设置 column.IsUpdated = true where column.Name = "id"。
我正在尝试这个,它不起作用。
detail.Rows.ForEach(r => r.Columns.Where(c => c.Name.ToLower().Equals("id")).ToList<Column>().Select(c => c.IsUpdated = true));

最佳答案

LINQ 的理念是没有副作用。这就是为什么故意使您无法轻松做到这一点的原因。你可以用经典来做

var cols = details.Rows.SelectMany(r => r.Columns)
.Where(c => c.Name.ToLower().Equals("id"));
foreach(var col in cols) {
col.IsUpdated = true;
}

或使用 List.ForEach ,但以不同的方式:
details.Rows.SelectMany(r => r.Columns)
.Where(c => c.Name.ToLower().Equals("id")).ToList()
.ForEach(c => { c.IsUpdated = true });

关于LINQ - 更新 where 子句中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com