我知道,C#中的值类型的实例化数组会自动使用该类型的默认值填充(例如,对于bool为false,对于int为0,等等)。
有没有一种方法可以使用不是默认值的种子值自动填充数组?是在创建时还是在之后采用内置方法(例如Java的Arrays.fill())?假设我想要一个默认为true而不是false的布尔数组。是否有内置的方法来执行此操作,还是只需要使用for循环遍历数组?
// Example pseudo-code: bool[] abValues = new[1000000]; Array.Populate(abValues, true);
// Currently how I'm handling this: bool[] abValues = new[1000000]; for (int i = 0; i < 1000000; i++) { abValues[i] = true; } 必须遍历数组并将每个值“重置”为true似乎没有效率。有没有办法解决?也许通过翻转所有值?
输入完该问题并进行思考后,我猜测默认值仅仅是C#如何处理这些对象在后台的内存分配的结果,因此我想可能无法做到这一点。但是我仍然想确定!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
不知道框架方法,但是您可以编写一个快速帮助程序来帮助您。
public static void Populate (this T[] arr, T value ) { for ( int i = 0; i < arr.Length;i++ ) { arr[i] = value; } } 问题来源于stack overflow