WEB开发网
开发学院软件开发C语言 Effective C# 原则40:根据需求选择集合 阅读

Effective C# 原则40:根据需求选择集合

 2009-02-19 08:17:44 来源:WEB开发网   
核心提示: int j = _numbers[ 50 ];另外,访问数组时还可以用foreach迭代,Effective C# 原则40:根据需求选择集合(2),或者使用枚举器:foreach ( int i in _numbers )Console.WriteLine( i.ToString( )

int j = _numbers[ 50 ];

另外,访问数组时还可以用foreach迭代,或者使用枚举器:

foreach ( int i in _numbers )
 Console.WriteLine( i.ToString( ) );
// or:
IEnumerator it = _numbers.GetEnumerator( );
while( it.MoveNext( ))
{
 int i = (int) it.Current;
 Console.WriteLine( i.ToString( ) );
}

如果准备存储单一次序的对象,你应该使用数组。但实际上你的数据结构往往比这复杂的多。这很快诱使我们回到了C风格上的锯齿数组,那就是一个数组里存储另一个数组。有些时候这确实是你想要的,每个外层元素都是内层的一个数组:

public class MyClass
{
 // Declare a jagged array:
 private int[] [] _jagged;
 public MyClass()
 {
  // Create the outer array:
  _jagged = new int[5][];
  // Create each inner array:
  _jagged[0] = new int[5];
  _jagged[1] = new int[10];
  _jagged[2] = new int[12];
  _jagged[3] = new int[7];
  _jagged[4] = new int[23];
 }
}

每个内层的一维数组可以有同不的大小。在需要不同大小的数组时可以使用锯齿数据。使用锯齿数组的缺点是在列方面上的访问是底效的。检查一个每行上有三个列的锯齿数组时,每次访问都要做两个检测 。在行0列3上的元素和在行1列3的元素没有任何关系。只有多维数组才可在以列方面上的访问有一定的效率。过去,C和C++程序使用二维或多维数组时是把它们映射到一个一维数组上。对于老式的C和C++程序员,这样的标记应该很清楚:

上一页  1 2 3 4 5 6 7  下一页

Tags:Effective 原则 根据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接