gpt4 book ai didi

c# - 带有索引的 Lambda ForEach

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:11 27 4
gpt4 key购买 nike

下面是列名列表:

var colNames = new List<string> { "colE", "colL", "colO", "colN" };

根据列名在列表中的位置,我想使该列的可见索引等于列名的位置,但不返回列表。换句话说,下面的 lambda 表达式末尾没有“ToList()”:

colNames.Select((x, index) => { grid_ctrl.Columns[x].VisibleIndex = index; return x; }).ToList();

这可以用单行 lambda 表达式编码吗?

最佳答案

使用循环产生副作用。使用查询从现有数据计算新数据:

var updates =
colNames.Select((x, index) => new { col = grid_ctrl.Columns[x].VisibleIndex, index })
.ToList();

foreach (var u in updates)
u.col.VisibleIndex = u.index;

在查询中隐藏副作用会导致令人讨厌的意外。我们仍然可以使用查询来完成大部分工作。

您还可以使用 List.ForEach 产生这些副作用。然而,这种方法不是很可扩展。它不像查询那样笼统。

关于c# - 带有索引的 Lambda ForEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656883/

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