对字符串数组生成一个随机序
这种情况: 一组照片,或者MP3歌曲,知道它们的路径,保存在一个数组中。现在想随机播放之。要求,每首歌出现的概率相等,且播放完全部之前不会重复,并且保证顺序可以前后无限快进或者快倒。
using System; using System.Collections.Generic; using System.Text; using System.IO;
namespace RandomStringArray { class Program { private static int count = 50;
static void Main(string[] args)
{
string[] originalArray = GetStringArray();
string[] randomArray = new string;
SortedList<int, string> list = new SortedList<int, string>();
for (int i = 0; i < originalArray.Length; i++)
{
list.Add(originalArray.GetHashCode(), originalArray);
}
int index = 0;
foreach (KeyValuePair<int, string> item in list)
{
randomArray = item.Value;
}
// Print Result
Console.WriteLine("Original:");
for (int i = 0; i < originalArray.Length; i++)
{
Console.WriteLine(string.Format("[{0}]{1}", i, originalArray));
}
Console.WriteLine("Random:");
for (int i = 0; i < randomArray.Length; i++)
{
Console.WriteLine(string.Format("[{0}]{1}", i, randomArray));
}
}
///
/// Generate a directories list for test
///
/// <returns>Directories list</returns>
private static string[] GetStringArray()
{
if (!Directory.Exists("Temp"))
{
Directory.CreateDirectory("Temp");
for (int i = 0; i < count; i++)
{
Directory.CreateDirectory("Temp\\" +
Guid.NewGuid().ToString());
}
}
return Directory.GetDirectories("Temp");
}
}
}