目录
一、Array.Reverse 方法
1.重载
2.Reverse(Array, Int32, Int32)
3. Reverse(Array)
4.Reverse(T[])
5. Reverse(T[], Int32, Int32)
二、实例
1.Array.Reverse 方法4种重载方法综合实例
2.Reverse(Array)方法的实例
一、Array.Reverse 方法
反转一维 Array 或部分 Array 中元素的顺序。
1.重载
Reverse(Array, Int32, Int32) | 反转一维 Array 中元素子集的顺序。 |
Reverse(Array) | 反转整个一维 Array 中元素的顺序。 |
Reverse<T>(T[]) | 反转一维泛型数组中元素的顺序。 |
Reverse<T>(T[], Int32, Int32) | 反转一维泛型数组中元素子集的顺序。 |
2.Reverse(Array, Int32, Int32)
它允许您反转数组中指定索引和长度的部分元素顺序。
public static void Reverse (Array array, int index, int length);
参数
array Array
要反转的一维 Array。
index Int32
要反转的部分的起始索引。
length Int32
要反转的部分中的元素数。
例外
ArgumentNullException
array 为 null。
RankException
array 是多维的。
ArgumentOutOfRangeException
index 小于 array 的下限。
或 -
length 小于零。
ArgumentException
index 和 length 未在 array 中指定有效范围。
3. Reverse(Array)
C#中可以使用Array.Reverse()方法来反转数组中的元素顺序。
public static void Reverse (Array array);
参数
array Array
要反转的一维 Array。
例外
ArgumentNullException
array 为 null。
RankException
array 是多维的。
4.Reverse<T>(T[])
Array.Reverse<T>(T[] array)是Array类的泛型版本的Reverse()方法,它允许您反转泛型数组中的元素顺序。
public static void Reverse<T> (T[] array);
类型参数
T
array 中的元素的类型。
参数
array T[]
要反转的元素的一维数组。
例外
ArgumentNullException
array 为 null。
RankException
array 是多维的。
5. Reverse<T>(T[], Int32, Int32)
Array.Reverse<T>(T[] array, int index, int length)是Array类的另一个版本的Reverse()方法,它允许您反转泛型数组中指定索引和长度的部分元素顺序。
public static void Reverse<T> (T[] array, int index, int length);
类型参数
T
array 中的元素的类型。
参数
array T[]
要反转的元素的一维数组。
index Int32
要反转的部分的起始索引。
length Int32
要反转的部分中的元素数。
例外
ArgumentNullException
array 为 null。
RankException
array 是多维的。
ArgumentOutOfRangeException
index 小于 array 的下限。
或 -
length 小于零。
ArgumentException
index 和 length 未在 array 中指定有效范围。
二、实例
1.Array.Reverse 方法4种重载方法综合实例
//Array.Reverse 方法
namespace _105_1
{
internal class Program
{
private static void Main(string[] args)
{
ArgumentNullException.ThrowIfNull(args);
// Reverse(Array)
int[] numbers1 = [1, 2, 3, 4, 5];
Array.Reverse(numbers1);
foreach (int number in numbers1)
{
Console.Write(number + " ");
}
Console.WriteLine();
Console.WriteLine("***************");
// Reverse(Array, Int32, Int32)
int[] numbers2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
int index = 3;
int length = 4;
Array.Reverse(numbers2, index, length);
foreach (int number in numbers2)
{
Console.Write(number + " ");
}
Console.WriteLine();
Console.WriteLine("***************");
// Array.Reverse<T>(T[] array)
string[] names = ["Alice", "Bob", "Charlie", "David", "Eve"];
//使用Array.Reverse<T>方法反向数组中的元素顺序
Array.Reverse(names);
foreach (string name in names)
{
Console.Write(name + " ");
}
Console.WriteLine();
Console.WriteLine("***************");
// Reverse<T>(T[], Int32, Int32)
string[] words = { "hello", "world", "foo", "bar" };
// 使用 Array.Reverse<T> 方法来反转数组中元素的顺序,从索引 1 开始,长度为 2
Array.Reverse(words, 1, 2);
foreach (string word in words)
{
Console.Write(word + " ");
}
Console.WriteLine();
Console.WriteLine("***************");
}
}
}
//运行结果:
/*
5 4 3 2 1
***************
1 2 3 7 6 5 4 8 9
***************
Eve David Charlie Bob Alice
***************
hello foo world bar
***************
*/
2.Reverse(Array)方法的实例
// 用Reverse(Array)方法反转数组中元素
namespace _105
{
public partial class Form1 : Form
{
private GroupBox? groupBox1;
private GroupBox? groupBox2;
private Button? button1;
private Label? label1;
private Label? label2;
private string[]? str_array;//定义字符串数组字段
public Form1()
{
InitializeComponent();
StartPosition = FormStartPosition.CenterScreen;
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
//
// button1
//
button1 = new Button
{
Location = new Point(99, 123),
Name = "button1",
Size = new Size(75, 23),
TabIndex = 0,
Text = "反转",
UseVisualStyleBackColor = true
};
button1.Click += Button1_Click;
//
// label1
//
label1 = new Label
{
AutoSize = true,
Location = new Point(48, 15),
Name = "label1",
Size = new Size(0, 17),
TabIndex = 1
};
//
// label2
//
label2 = new Label
{
AutoSize = true,
Location = new Point(48, 15),
Name = "label2",
Size = new Size(0, 17),
TabIndex = 2
};
//
// groupBox1
//
groupBox1 = new GroupBox
{
Location = new Point(12, 12),
Name = "groupBox1",
Size = new Size(240, 105),
TabIndex = 0,
TabStop = false,
Text = "反转前:"
};
groupBox1.Controls.Add(label1);
groupBox1.SuspendLayout();
//
// groupBox2
//
groupBox2 = new GroupBox
{
Location = new Point(12, 152),
Name = "groupBox2",
Size = new Size(240, 105),
TabIndex = 0,
TabStop = false,
Text = "反转后:"
};
groupBox2.Controls.Add(label2);
groupBox2.SuspendLayout();
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(264, 269);
Controls.Add(button1);
Controls.Add(groupBox2);
Controls.Add(groupBox1);
Name = "Form1";
Text = "反转数组元素";
groupBox1.ResumeLayout(false);
groupBox1.PerformLayout();
groupBox2.ResumeLayout(false);
groupBox2.PerformLayout();
str_array = ["C#编程词典", "C#编程宝典", "C#开发实战宝典", "视频学C#", "C#范例大全"];
foreach (string str in str_array)
{
label1!.Text += str + Environment.NewLine;
}
}
private void Button1_Click(object? sender, EventArgs e)
{
label2!.Text = string.Empty;
foreach (string str in str_array!.Reverse())//遍历反转后的字符串数组
{
label2.Text += str + Environment.NewLine;
}
}
}
}