gpt4 book ai didi

c# - 关于二维列表C#的问题

转载 作者:行者123 更新时间:2023-11-30 22:55:15 25 4
gpt4 key购买 nike

我遇到了列表问题,因为我需要创建一个二维列表,我可以在其中通过提供列和行来读取数据,因此我可以使用 my_List[col] 从我的列表中读取[row] 那么是否有可能以这种方式制作二维列表?

这会对性能产生多大影响?我应该注意哪些可能会对代码产生性能影响?我可能需要每秒从我的 2D 列表中读取几百次

是否可以有更多网格类型的 2D 列表,所以如果我在 3、4 和 5 中有数据,但在 0、1 和 2 中没有任何数据,请将其视为坐标。那么我可以使用 myList[3][5] 从列表中读取并从那里获取数据,其中 0、1 和 2 什么都没有吗?还是我需要循环它并在那里添加一些东西,比如 null?

提前致谢!

最佳答案

是的,你确实可以使用 multidimensional arrays or jagged arrays用于存储“二维数据”。

至于创建一个不为未使用的索引使用任何内存空间的数据结构,一个选项可能是使用一个字典,其中键是两个数字的元组,就像这样(假设您的数据是字符串):

var items = new Dictionary<(int, int), string>();

items.Add((0,1), "0-1"); //this throws an error if the key already exists
items[(2,3)] = "2-3"; //this silently replaces the value if the key already exists

Console.WriteLine(items.Keys.Contains((0,1))); //true
Console.WriteLine(items.Keys.Contains((0,2))); //false

Console.WriteLine(items[(2,3)]); //"2-3"

当然,您可能想将此功能封装在它自己的类中,但您明白了。

但请注意,这种字典方法在性能方面可能比普通数组更差,但这取决于您进行试验和收集一些指标。

关于c# - 关于二维列表C#的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394023/

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