C# 仅查看现有变量

C# 仅查看现有变量,c#,c++,arrays,hashtable,C#,C++,Arrays,Hashtable,我要问的问题将非常具体 假设我们有一个具有一定大小的数组/哈希表。 并且并不是此数组/表中的所有空间都被使用。 例如,假设我们有一个名为“arr”的整数数组,其大小为150 arr[3] = 5; arr[16] = 22; arr[127] = 3; 除此之外,0和150之间的所有其他空格都是空的。 现在让我们假设我们想要打印这个数组中的每个数字(它不是空的) 我们可以做一个从0到150的循环,检查数组空间是否为null,如果不是,则打印它。 但这意味着,对于只打印3个变量,我们需要进行15

我要问的问题将非常具体

假设我们有一个具有一定大小的数组/哈希表。 并且并不是此数组/表中的所有空间都被使用。 例如,假设我们有一个名为“arr”的整数数组,其大小为150

arr[3] = 5;
arr[16] = 22;
arr[127] = 3;
除此之外,0和150之间的所有其他空格都是空的。 现在让我们假设我们想要打印这个数组中的每个数字(它不是空的)

我们可以做一个从0到150的循环,检查数组空间是否为null,如果不是,则打印它。 但这意味着,对于只打印3个变量,我们需要进行150次检查

我想知道的是,是否有可能在不查看整个数组的情况下直接打印这些数字。 我的意思是不检查空值,直接从一个非空变量到另一个非空变量

在哈希表中我的问题也是一样的,假设我们没有为0和哈希表大小之间的每个数字创建表。如果每次都有表存在或不存在,是否可以只查看现有表而不是检查表

即使不能像我说的那样使用数组或哈希表,也有任何方法可以直接从一个变量转到下一个变量。(我搜索的不是链表)

数组是一个固定大小的连续内存数据结构。没有办法知道哪个元素被分配了&哪个元素没有(不单独记住分配的索引或迭代)

哈希表(或字典)——不是一个连续的内存结构。在我看来,哈希表中(理想情况下)只应存储3个条目。您根本不会存储其他(空)项。您可以对列表执行相同的操作


若出于某种原因,您将从0到150的所有内容添加到哈希表中,其中除这3项外的所有内容的值都为Null。同样,除了迭代之外,你没有更简单的方法来解决这个问题。

在C#中没有
null
int
。你的意思是它们是
int?
类型吗?使用
列表
并在需要时添加项目。它基本上是一个可调整大小的数组。我会使用
字典
而不是数组。您可以使用字典的方法来获得现有的密钥(关键字是数组指示符)。这是C++还是C?