c# - 如何在 C# 中有效地将公共(public)初始值分配给大型数组?

标签 c# arrays multidimensional-array initialization

如何有效地将公共(public)初始值分配给大型数组? 例如,如果我有一个 100 x 100 x 100 整数数组,其中所有初始值都应为零。

在 matlab 中我会简单地写:

array = zeros(100,100,100);

如何在 C# 中不使用循环来执行此操作?

最佳答案

只是为了论证(我个人认为这不是一种好的编程风格),但它可以在 C# 中一行完成,技术上不需要循环,但可以使用 LINQ

int[,,] cube = new int[A, B, C];
Enumerable.Range(0, A*B*C).Select(i => cube[i/(B*C), i%(B*C)/C, i%C] = 1).Count();

这里的Count()只是为了枚举序列,其结果被忽略。 这是为了实现MATLAB的ones()函数。 要实现 Zeros(),可以使用以下内容:

Array.Clear(cube, 0, A*B*C);

关于c# - 如何在 C# 中有效地将公共(public)初始值分配给大型数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547105/

相关文章:

c# - 异常在 try/catch 上下文中丢失了部分堆栈跟踪

c# - 带有 ORDER BY 的 SQL 查询语法不起作用

c# - RC2 C# 和 Python 实现差异?

c# - form2 关闭并重新显示 form1 后 Form1 不会保持打开状态

C++ 检查 float

c++ - vector 类 C++ 的 pop_back 和删除

java - 如何直接在数组上对多维数组的每个对象执行方法?

c++ 如何使用用户输入的变量将二维数组传递给函数?

javascript - 检查多维数组中的数组(pref-jQuery)

JavaScript 字符串转化为多维数组