我正在创建一个浏览文件的程序,将它们放入一个数组中,然后用户将这些文件以随机顺序放入一个名为playlist的新数组中。
要明确我不想将一个数组分配给另一个数组。我只想将一个数组的许多元素之一分配给另一个现有数组。
这是怎么做到的?
以下是我能想到的全部内容:
playlist[1] = files[5];
答案 0 :(得分:3)
您可以非常轻松地使用System和System.IO命名空间。
var files = Directory.GetFiles("directory path");
var playlist = new string[files.Length];
此时,您将拥有两个阵列。 files数组将包含您指定的目录中每个文件的完整路径,播放列表将是一个与files数组大小相同的字符串数组。
要获取随机文件并将其分配给播放列表数组,可以使用System命名空间中的Random类来获取范围之间的随机数。
var random = new Random();
int index = random.Next(0, playlist.Length);
您可以使用一堆逻辑语句来确保您不会多次复制一个文件,并且您将其复制到的空间还没有被占用一份文件。但你有这个想法。转移所有路径看起来像这样
playlist[RandomPlaylistIndex] = files[RandomFileIndex];
左手侧是接收端。无论如何,这几乎就是它的要点。如果您仍然卡住,我可以发布更多代码。
答案 1 :(得分:3)
使用Array.Copy,您可以在其中定义源阵列的开始和结束。
例如,要将文件的第15个元素复制到PLaylist:
Array.Copy(Files, 15, 1, Playlist, Playlist.Length,1)