我有一些适用于二维网格(数组)的代码,最后我得到了很多循环遍历网格中每个项目的例程。
但我认为如果我可以使用扩展方法来实现这种 LINQ 风格会很好。
这是我到目前为止所尝试的:
private static void ForEach(this MyType[,] grid, Action<MyType> action)
{
for (int row = 0; row < grid.GetUpperBound(0); row++)
for (int col = 0; col < grid.GetUpperBound(1); col++)
action(grid[row, col]);
}
1. Intellisense 似乎无法识别类型对象上的这种扩展方法MyType[3,3]
。我是否错过了为二维数组编写扩展方法的内容?
2.实现这种允许我有条件地设置网格值的模式的推荐方法是什么?使用上面的代码,设置传递的值不会影响原始数组。
编辑:
好的,在最初在调用它的同一个类中实现这个扩展方法之后,我愚蠢地将它声明为private
当我将它移到外部类时。我猜它不会在同一个类中作为私有方法工作,而且它显然不会作为外部类中的私有方法工作。
不过,仍然希望看到 2 号的答案。