using System;
namespace TestConsole
{
/// <summary>
/// 14.6的例子
/// </summary>
public class TestArray
{
static void Main()
{
//创建一个含有3个元素的数组
Int32[] arr = new Int32[]{ 1, 2, 3 };
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含5个元素
arr = ( Int32[] )Redim( arr , 5 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含2个元素
arr = ( Int32[] )Redim( arr , 2 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含3个元素,测试一下将数组变短以后再变长原来的数据是否会丢失
arr = ( Int32[] )Redim( arr , 3 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
Console.ReadLine();
}
public static Array Redim( Array origArray , Int32 desiredSize )
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建一个含有期望元素个数的新数组
Array newArray = Array.CreateInstance( t , desiredSize );
//将原数组中的元素拷贝到新数组中
Array.Copy( origArray , 0 , newArray , 0 , Math.Min( origArray.Length , desiredSize ) );
//返回新数组
return newArray;
}
}
}
namespace TestConsole
{
/// <summary>
/// 14.6的例子
/// </summary>
public class TestArray
{
static void Main()
{
//创建一个含有3个元素的数组
Int32[] arr = new Int32[]{ 1, 2, 3 };
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含5个元素
arr = ( Int32[] )Redim( arr , 5 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含2个元素
arr = ( Int32[] )Redim( arr , 2 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
//重新调整数组长度使其包含3个元素,测试一下将数组变短以后再变长原来的数据是否会丢失
arr = ( Int32[] )Redim( arr , 3 );
//显示数组中的所有元素
foreach( Int32 x in arr )
{
Console.WriteLine( x + " " );
}
Console.WriteLine();
Console.ReadLine();
}
public static Array Redim( Array origArray , Int32 desiredSize )
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建一个含有期望元素个数的新数组
Array newArray = Array.CreateInstance( t , desiredSize );
//将原数组中的元素拷贝到新数组中
Array.Copy( origArray , 0 , newArray , 0 , Math.Min( origArray.Length , desiredSize ) );
//返回新数组
return newArray;
}
}
}
运行结果如下:
1
2
3
1
2
3
0
0
1
2
1
2
0
2
3
1
2
3
0
0
1
2
1
2
0
可以看到,将数组变短然后再变长以后原来的数据丢失了
浙公网安备 33010602011771号