c# - 定义二维动态数组

标签 c# .net arrays

如何定义二维动态数组? 如果我想使用 List<>,我可以将它用于二维吗?

最佳答案

据我所知,没有二维数组的内置动态等价物,但您可以轻松获得或多或少相同的功能。

使用此 API 定义坐标类:

public class Coordinate : IEquatable<Coordinate>
{
     public Coordinate(int x, int y);
     public int X { get; }
     public int Y { get; }
     // override Equals and GetHashcode...
}

您现在可以创建这些坐标实例的集合。

如果您创建一个 HashSet<Coordinate>如果坐标已经添加,您将被保证不能添加坐标,因为它会覆盖等于。

如果需要,可以将坐标展开为Coordinate<T>像这样:

public class Coordinate<T> //...
{
    // previous stuff...

    public T Item { get; set; }
}

这将允许您将强类型项与每个坐标相关联,如下所示:

var items = new HashSet<Coordinate<string>>();
items.Add(new Coordinate<string>(1, 4) { Item = "Foo" });
items.Add(new Coordinate<string>(7, 19) { Item = "Foo" });
// ...

关于c# - 定义二维动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939319/

相关文章:

c# - 如何将 android Unity 错误和调试日志导出到文件?

c# - 如何在 Serilog Sink 中使用依赖注入(inject)?

C#,DataGridView - 选择新行后包含垃圾

c# - LINQ 查询后将数据从 var 复制到 DataTable

c# - 从 ApplicationContext 退出应用程序

c# - 如何从用户控件的依赖属性中设置/获取值?

c++ - 围绕静态库的托管 C++ 包装器

arrays - Fortran 中继承派生类型问题的可分配数组

sql - 根据观看的节目类别将一条记录拆分为多条记录

c - 如何从 C 中的函数返回二维数组?