class Program
{
static void Main(string[] args)
{
int[] arrA = new int[6] { 1, 2, 3, 4, 5, 6 };
int[] arrB = { 4, 5, 6, 14, 15, 16, 18 };
int[,] arr_1 = { { 1, 2, 3 }, { 4, 5, 6 } };//二维数组
int[][] arr_2 = { new int[] { }, new int[] { }, new int[] { } };//交错数组
//arrA.Rank 数组的维度
//arrA.LongLength 数组所有维度的元素个数;
//arrA.IsFixedSize 表示里面有元素;
Console.WriteLine(arrA.Rank);
Console.WriteLine(arrA.IsFixedSize);
Console.WriteLine(arrA.IsReadOnly);
//arrA.IsReadOnly 判断是否只读,返回布尔值;
ShowClass.ShowArr(arrA, "改变前");
Array.Clear(arrA, 1, 4);//把指定位置改为零 参数1:数组 参数2:下标 参数3:长度个数
ShowClass.ShowArr(arrA, "改变后");
bool[] arrT = new bool[] { true, false, true, false, true, true, true };
ShowClass.ShowArrbool(arrT, "\n改变前:");
Array.Clear(arrT, 1, 3);
ShowClass.ShowArrbool(arrT, "\n改变后:");
Array.Copy(arrA, arrB, 3);//把数组A相应长度个数复制数组B头部;参数1:被复制数组 参数2:要复制数组;参数3:要赋值数组的长度个数;
ShowClass.ShowArr(arrB, "\n改变后");
Array.Copy(arrB, arrA, 3);//练
ShowClass.ShowArr(arrA, "\n改变后");
ShowClass.ShowArr(arrB, "\n改变前");
//int[] arrE = {11,22,33 };
//arrE.CopyTo(arrB,2);//把一个数组赋值到另一个数组的相应下标位;注意数组长度;最大值:arrB-arrE;
ShowClass.ShowArr(arrB, "改变前");
//练
int[] arr_A = { 1, 2, 3, 4, 5, 6 };
int[] arr_B = { 8, 18, 28, 38, 48, 58, 68, 78, 88, 98, 108 };
ShowClass.ShowArr(arr_B, "\n前");
Array.Copy(arr_A, arr_B, 3);
arr_A.CopyTo(arr_B, 3);
ShowClass.ShowArr(arr_B, "\n后");
Console.WriteLine(arr_B.GetValue(2));//获取相应下标位置的值;
Console.WriteLine(Array.IndexOf(arr_B, 18));//寻找指定元素在数组第一次出现的下标;没有则返回-1;
Array.IndexOf(arr_B, 108);
Array.LastIndexOf(arr_B, 18);//寻找指定元素在数组最后一次出现的下标,没有返回-1;
Console.WriteLine(ShowClass.ArrIndexOf(arr_B, 18));
ShowClass.ShowArr(arr_B, "\n前: ");
Array.Reverse(arr_B);//数组逆转
arr_B.SetValue(888, 2);//设置数组相应下标位置的元素值 跟getValue向相对应
ShowClass.ShowArr(arr_B, "\n后: ");
//int[] arrE={33,36,66,23}; 转变为36,66,33,23
int[] arrE = { 33, 36, 66, 23 };
int[] arr_E = new int[arrE.Length];
ShowClass.ShowArr(arrE, "\n前:");
arrE.CopyTo(arr_E, 0);
Array.Copy(arrE, 1, arr_E, 0, 2);
Array.Copy(arrE, 0, arr_E, 2, 1);
ShowClass.ShowArr(arr_E, "\n后:");
Console.ReadKey();
}
}
class ShowClass
{
/// <summary>
/// 一维数组显示 传字符串对比
/// </summary>
/// <param name="arr"></param>
/// <param name="str"></param>
public static void ShowArr(int[] arr, string str)
{
Console.Write(str);
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
/// <summary>
/// bool型显示
/// </summary>
/// <param name="arr"></param>
/// <param name="str"></param>
public static void ShowArrbool(bool[] arr, string str)
{
Console.Write(str);
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
/// <summary>
/// 二维数组显示
/// </summary>
/// <param name="arr"></param>
public static void ShowArrerwei(int[,] arr)
{
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write(arr[i, j] + " ");
}
Console.WriteLine();
}
}
/// <summary>
/// 寻找第一次出现的下标
/// </summary>
/// <param name="arr"></param>
/// <param name="a"></param>
/// <returns></returns>
public static int ArrIndexOf(int[] arr, int a)
{
int index = -1;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == a)
{
index = i;
break;
}
}
return index;
}
public static int ArrLastIndexOf(int[] arr, int a)
{
int index = -1;
for (int i = arr.Length - 1; i > 0; i--)
{
if (arr[i] == a)
{
index = i;
break;
}
}
return index;
}
}