📜  c# shuffle 字符串数组 - C# (1)

📅  最后修改于: 2023-12-03 14:39:44.010000             🧑  作者: Mango

C# Shuffle 字符串数组

在 C# 中,Shuffle 字符串数组是一种常见的操作,即打乱字符串数组的顺序。本文将介绍如何使用 C# 实现 Shuffle 字符串数组。

示例

以下是一个 Shuffle 字符串数组的示例:

string[] array = new string[] { "a", "b", "c", "d", "e", "f", "g" };
Random rand = new Random();

for (int i = array.Length - 1; i >= 1; i--)
{
    int j = rand.Next(i + 1);
    string temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

foreach (string s in array)
{
    Console.WriteLine(s);
}

在上面的代码中,我们使用了一个随机数生成器 Random 来打乱字符串数组的顺序。我们将随机生成的数 j 作为交换的索引,从而打乱数组元素的顺序。最后使用 foreach 循环输出打乱后的数组。

解析

以下是上述示例中的 C# 代码片段的解析:

初始化字符串数组和随机数生成器
string[] array = new string[] { "a", "b", "c", "d", "e", "f", "g" };
Random rand = new Random();

在上述代码中,我们首先初始化了一个字符串数组 array,其中包含了需要进行洗牌的字符串。接着,我们使用随机数生成器 Random 来生成随机数。

遍历字符串数组进行交换
for (int i = array.Length - 1; i >= 1; i--)
{
    int j = rand.Next(i + 1);
    string temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

在上述代码中,我们从数组的末尾开始遍历数组,从而确保每个元素都至少被交换一次。我们使用 rand.Next(i + 1) 生成一个小于等于当前索引 i 的随机索引 j,并通过交换数组元素来打乱数组的顺序。

输出打乱后的字符串数组
foreach (string s in array)
{
    Console.WriteLine(s);
}

最后,我们使用 foreach 循环输出打乱后的字符串数组。