c#中的数组
来源:互联网 发布:淘宝达人网站 编辑:程序博客网 时间:2024/06/11 20:56
Array是所有数组的基类。所以用普通方法创建的数组可以使用Array创建的数组实例上的所有方法和属性。
创建:
数组的length可以用变量赋值,但是在赋值之前这个变量必须初始化。
一维
int [] arr = new int [length];
Array arr = Array.CreateInstance(typeof(string),length)
高维
int [,] arr = new int 【length1,length2......】
Array arr = Array.CreateInstance(typeof(string),length1,length2...)
遍历
foreach(int i in arr)
{
}
一维或高维都可以用一个foreach来解决。
如果用for的话就不行了。
设置和获取指定位置的值
for (int i = 0; i < arr.GetLength(0); i++) <span style="color:#FF0000;">获取指定维的长度。也可以用system.Array的属性Length,这是所有围度的总长度。</span> { arr.SetValue("cai", i); <span style="color:#FF0000;">设置指定位置的值</span> Console.WriteLine(arr.GetValue(i)); <span style="color:#FF0000;">获取指定位置的值</span> }
用一维数组封装索引给高维数组的指定位置赋值
String[, , , , , ,] myArr7 = new String[5, 5, 5, 5, 5, 5, 5]; <span style="color:#FF0000;">// 创建一个一维的数组,提供7维数组索引的封装。 //当然也可以不封装,只要你喜欢。myArr7.SetValue("one-two-three-zero-one-two-three",1, 2, 3, 0, 1, 2, 3 );</span> int[] myIndices = new int[7] { 1, 2, 3, 0, 1, 2, 3 }; // 赋值 myArr7.SetValue("one-two-three-zero-one-two-three", myIndices); //获取值 Console.WriteLine("[1,2,3,0,1,2,3]: {0}", myArr7.GetValue(myIndices));<span style="background-color: rgb(255, 255, 255);"><span style="color:#FF0000;">//myIndices是index的复数</span></span>
Console.WriteLine(arr.Rank)<span style="color:#FF0000;">;//获取数组的秩</span> // Array.<span style="color:#FF0000;">Sort</span>(arr);只可以用于一维 // Array.<span style="color:#FF0000;">Reverse</span>(arr);只可以用于一维 // Array.<span style="color:#FF0000;">IndexOf</span>(arr, 23);高维中:得到指定围度的最大索引和最小索引,该方法不受为null或0的影响。
Array my3DIntArray = Array.CreateInstance(typeof(Int32), 2, 3, 4); for (int i = my3DIntArray.<span style="color:#FF0000;">GetLowerBound(0)</span>; i <span style="color:#FF0000;"><= </span>my3DIntArray.<span style="color:#FF0000;">GetUpperBound(0)</span>; i++)<span style="color:#FF0000;">//因为获取是索引,所以是<=</span> for (int j = my3DIntArray.GetLowerBound(1); j <= my3DIntArray.GetUpperBound(1); j++) for (int k = my3DIntArray.GetLowerBound(2); k <= my3DIntArray.GetUpperBound(2); k++) { my3DIntArray.SetValue((i * 100) + (j * 10) + k, i, j, k); } //用GetLength(维数)实现同样的功能<pre name="code" class="csharp"> for (int i = 0; i < my3DIntArray.<span style="color:#FF0000;">GetLength(0)</span>; i++)<span style="color:#FF0000;">//因为GetLength(0)获取指定维数的长度.,所以是<</span> for (int j = 0; j < my3DIntArray.<span style="color:#FF0000;">GetLength(1)</span>; j++) for (int k = 0; k < my3DIntArray<span style="color:#FF0000;">.GetLength(2)</span>; k++) { my3DIntArray.SetValue((i * 100) + (j * 10) + k, i, j, k); }
转换
Convert()系列
复制到另一个数组
Copy()系列
全部清空
Clear()
潜克隆
Clone() 仅复制数组的元素,不会复制这些元素所指向的对象(如果这些元素时引用类型的话)
重置大小
Resize(),实际上是先创建一个数组,再进行复制。
获取类型
GetType()
这些都是Array对象的冰山一角。
总之,我们应用面向对象的思想去思考Array应该有哪些功能。然后再去查找MSDN。
而且,以后再用到数组时,不要用普通的方法创建了,应该用Array来创建。因为c#中,一切都是对象。
0 0
- C# 数组中的数组
- C#中的数组使用
- C#中的数组(Array)
- 浅谈C#中的数组
- 浅谈C#中的数组
- C#中的委托数组
- c#中的数组
- C#中的数组排序
- C#中的数组谈
- C#中的交叉数组
- C#中的数组
- C#中的Array-数组
- C#中的数组段
- C#中的数组
- C#中的数组
- C#中的数组
- C#中的数组
- C#中的数组
- jQuery的cookie插件使用,jQuery操作cookie,写入,读取,删除
- 第一章:Dubbo整合maven+spring+springmvc+mybatis之环境准备
- linux 删除文件夹和里面的文件
- l操作excel
- soapui与webservice接口测试[1]
- c#中的数组
- AWS linux挂载新的EBS
- 第11周项目1 验证算法(2)二叉树构造算法的验证
- 深入理解Android之Gradle
- 使用goEasy实现web消息实时推送
- P_CalcPlan
- C3P0说明
- Android开发-RecyclerView-AndroidStudio(六)属性动画(3)AddDuration
- soapui与webservice接口测试[2]