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
可以看到,将数组变短然后再变长以后原来的数据丢失了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架