C#用Array类的Reverse方法反转数组中元素

目录

一、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[]) 反转一维泛型数组中元素的顺序。
Reverse(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[])

        Array.Reverse(T[] array)Array类的泛型版本的Reverse()方法,它允许您反转泛型数组中的元素顺序。

public static void Reverse (T[] array);

类型参数    
T
array 中的元素的类型。

参数
array    T[]
要反转的元素的一维数组。

例外
ArgumentNullException
array 为 null。

RankException
array 是多维的。

5. Reverse(T[], Int32, Int32)

        Array.Reverse(T[] array, int index, int length)是Array类的另一个版本的Reverse()方法,它允许您反转泛型数组中指定索引和长度的部分元素顺序。

public static void Reverse (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[] array)
            string[] names = ["Alice", "Bob", "Charlie", "David", "Eve"];
            //使用Array.Reverse方法反向数组中的元素顺序
            Array.Reverse(names);
            foreach (string name in names)
            {
                Console.Write(name + " ");
            }
            Console.WriteLine();
            Console.WriteLine("***************");

            // Reverse(T[], Int32, Int32)
            string[] words = { "hello", "world", "foo", "bar" };
            // 使用 Array.Reverse 方法来反转数组中元素的顺序,从索引 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;
            }
        }
    }
}

C#用Array类的Reverse方法反转数组中元素_第1张图片

你可能感兴趣的:(c#,数据结构,开发语言)