C#动态分配一维数组和二维数组函数
2008-06-27 12:52
323 查看
//动态调整一维数组长度
public static Array Redim(Array origArray, int length)
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建新的数组
Array newArray = Array.CreateInstance(t, length);
//原数组中的数据拷贝到新数组中
Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length));
return newArray;
}
//动态调整二维数组长度
public static Array Redim(Array origArray, params int[] lengths)
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建新的数组
Array newArray = Array.CreateInstance(t, lengths);
//原数组中的数据拷贝到新数组中
for (int i = origArray.GetLowerBound(0); i <= Math.Min(origArray.GetUpperBound(0), newArray.GetUpperBound(0)); i++)
for (int j = origArray.GetLowerBound(1); j <= Math.Min(origArray.GetUpperBound(1), newArray.GetUpperBound(1)); j++)
newArray.SetValue(origArray.GetValue(i, j), i, j);
//在这里没有用Copy方法,如果用此方法,会把原数组中所有数据逐个拷贝到新数组中
return newArray;
}
//如果在Redim方法中用Copy方法(动态调整二维数组长度)
public static Array Redim(Array origArray, params int[] lengths)
{
int length = 1;
for (int i = 0; i < lengths.Length; i++)
length *= lengths;
Type t = origArray.GetType().GetElementType();
Array newArray = Array.CreateInstance(t, lengths);
Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length));
return newArray;
}
public static Array Redim(Array origArray, int length)
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建新的数组
Array newArray = Array.CreateInstance(t, length);
//原数组中的数据拷贝到新数组中
Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length));
return newArray;
}
//动态调整二维数组长度
public static Array Redim(Array origArray, params int[] lengths)
{
//确定每个元素的类型
Type t = origArray.GetType().GetElementType();
//创建新的数组
Array newArray = Array.CreateInstance(t, lengths);
//原数组中的数据拷贝到新数组中
for (int i = origArray.GetLowerBound(0); i <= Math.Min(origArray.GetUpperBound(0), newArray.GetUpperBound(0)); i++)
for (int j = origArray.GetLowerBound(1); j <= Math.Min(origArray.GetUpperBound(1), newArray.GetUpperBound(1)); j++)
newArray.SetValue(origArray.GetValue(i, j), i, j);
//在这里没有用Copy方法,如果用此方法,会把原数组中所有数据逐个拷贝到新数组中
return newArray;
}
//如果在Redim方法中用Copy方法(动态调整二维数组长度)
public static Array Redim(Array origArray, params int[] lengths)
{
int length = 1;
for (int i = 0; i < lengths.Length; i++)
length *= lengths;
Type t = origArray.GetType().GetElementType();
Array newArray = Array.CreateInstance(t, lengths);
Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length));
return newArray;
}
相关文章推荐
- C#动态分配数组大小函数
- C#动态分配一维数组和二维数组函数
- 动态内存的分配,包括 new delete malloc realloc free,一维数组和二维数组
- 一维数组和二维数组空间的内存动态分配、参数传递
- C/C++动态二维数组的内存分配和释放
- 二维数组,二维数组的动态分配,以及向数组指针&指针数组的延伸
- 动态分配一维数组
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
- 简述动态存储分配及malloc(),free()函数
- 利用动态内存分配创建一个二维数组
- 如何在C/C++中动态分配二维数组并访问其中的数据
- C++中动态分配二维数组的方法(zz)
- C#调用的C++动态库里到底能分配多大的内存(实验)
- 如何在C/C++中动态分配二维数组
- C#动态执行函数:利用反射实现
- C#一维数组转二维数组
- c语言malloc()动态分配二维数组
- 二维数组的动态分配
- 动态二维数组的分配与释放
- 用malloc动态分配二维数组