【问题标题】:How to set all elements in a 3D array to a single value?如何将 3D 数组中的所有元素设置为单个值?
【发布时间】:2021-09-04 14:05:39
【问题描述】:

对于我的 C# 项目,我正在使用 16x16x16 3D char 数组(char[,,]),并且需要将所有元素的值设置为 char '0'。最好在定义期间 (char[,,] my3Dbasis = ...)。当然,我可以手动执行此操作,但这非常不合常规,不适合我的需要。有什么想法吗?

【问题讨论】:

标签: c# arrays


【解决方案1】:

您可以在初始化期间这样做

char[,,] array3D = new char[2, 2, 3] 
{ 
  { 
    { '0', '0', '0' }, 
    { '0', '0', '0' }
  }, 
  { 
    { '0', '0', '0' }, 
    { '0', '0', '0' }
  }
};

或者只是遍历数组并设置值

for ( int i = 0; i < 2; i++ )
{
  for ( int j = 0; j < 2; j++ )
  {
    for ( int k = 0; k < 3; k++ )
    {
      array3D[i, j, k] = '0';
    }
  }
}

【讨论】:

  • Array.GetUpperBound 优于文字。还有Array.GetLowerBound非常一丝不苟。
  • 我假设您打算使用 char 数组并分配 '0' 而不是 0 (因为像这样分配 0 是没有意义的,因为数组已经被初始化为包含所有0 值)。
  • 是的,只是更改为 char 数组。谢谢指出
【解决方案2】:

未经测试...

fixed (int* pMyArray= MyArray){
  for (int i = 0; i < 16*16*16; i++)
    *pMyArray + i = VALUE;
}

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多