非视觉坐标网格c#

本文关键字:网格 坐标 视觉 | 更新日期: 2023-09-27 18:26:47

我想在c#控制台应用程序中创建一个非视觉坐标网格,这样我就可以创建一个设置大小为"aXb"的网格(例如9X9或6X9等)。然后,我可以为每个坐标(x,y)分配一个数字,然后使用这些特定坐标访问它。我在c#中看到的每一个网格示例都可以显式地使用WPF制作可视化网格,或者在控制台应用程序中以某种方式使用字符。我只想把我的网格保存为每个(x,y)坐标都保存了数字的数据。是否可以使用数组/列表实现此功能?如有任何帮助或建议,我们将不胜感激。事实上,我确实知道设置坐标的代码是什么:

int x = 0;
int y = 0;
int[,] grid = new int[,] { { x }, { y } };

非视觉坐标网格c#

class Grid
{
    public Grid(int width, int length) {
        coordinates = new List<Coordinate>();
        for (int i = 1; i < width + 1; i++) {
            for (int k = 1; k < length + 1; k++) {
                coordinates.Add(new Coordinate(k,i));
            }
        }
    }
    List<Coordinate> coordinates;
    int width { get; set; }
    int length { get; set; }
    public int accessCoordinate(int x,int y) {
        return coordinates.Where(coord => coord.x == x && coord.y == y)
                          .FirstOrDefault().storedValue;
    }
    public void assignValue(int x, int y,int value) {
        coordinates.Where(coord => coord.x == x && coord.y == y)
                   .FirstOrDefault().storedValue = value;
    }
}
class Coordinate
{
    public Coordinate(int _x, int _y) {
        x = _x;
        y = _y;
    }
    public int x { get; set; }
    public int y { get; set; }
    public int storedValue { get; set; }
}

这里只是一个简单的例子,说明在这种情况下如何在控制台应用程序中使用

        Grid newGrid = new Grid(5, 6);
        newGrid.assignValue(2, 3, 500);
        var retrievedValue = newGrid.accessCoordinate(2, 3);
        Console.WriteLine(retrievedValue);
        Console.ReadLine();

请注意,这可能不是最有效/最好的方法,但它应该在一定程度上简化它,以便快速修改和理解