2015-09-03 3 views
1

Я делаю программу, которая просматривает файлы, помещает их в массив, а затем пользователь помещает эти файлы в произвольный порядок в новый массив, называемый плейлистом.C# присваивание элемента массива другому массиву

Чтобы быть ясным, я не хочу назначать один массив другому массиву. Я хочу только назначить один из многих элементов одного массива другому существующему массиву.

Как это делается?

Вот все, что я могу думать:

playlist[1] = files[5]; 
+0

WTF почему downvote? Если оба массива являются строками, а файлы [5] = «C: \\ music \\ whydownvote.mp3», ожидаемым результатом является тот список воспроизведения [1] = 'C: \\ music \\ whydownvote.mp3 " –

+0

Что именно" это, как вы хотите узнать? Как показать пользователю форму, которая позволяет ему просматривать/выбирать файлы? Как получить имена файлов, которые соответствуют заданному шаблону (заканчивающийся на .mp3, например) в данном каталоге? – Trauer

ответ

3

Вы можете использовать систему и System.IO пространство имен для всех, что довольно легко.

var files = Directory.GetFiles("directory path"); 
var playlist = new string[files.Length]; 

В этот момент у вас будет два массива. Массив файлов будет содержать полный путь для каждого файла в указанном вами каталоге, а плейлист будет строковым массивом с тем же размером, что и массив файлов.

Чтобы получить случайный файл и присвоить его массиву списков воспроизведения, вы можете использовать класс Random в пространстве имен System, чтобы получить случайное число между диапазоном.

var random = new Random(); 
int index = random.Next(0, playlist.Length); 

Вы можете использовать кучу логических утверждений, чтобы убедиться, что вы не скопировать один файл несколько раз, и что пространство вы копируете его еще не подхватили файл , Но у вас была идея идея. Передача всех дорожек будет выглядеть примерно так:

playlist[RandomPlaylistIndex] = files[RandomFileIndex]; 

с левой стороной, являющейся принимающей стороной. Во всяком случае, это в значительной степени суть этого. Я могу опубликовать больше кода, если вы все еще застряли.

+0

Im новый для C#, что такое var? –

+0

Это неявный тип. Тип переменной определяется тем, что было впервые задано. Имейте в виду, что это сильно отличается от типа данных объекта. Вы можете узнать больше об этом на этой странице в MSDN https://msdn.microsoft.com/en-us/library/bb383973.aspx –

+0

Я все еще застрял, я ничего не понимаю (я пытался не говорить «ничего»). для выполнения необходимо выбрать строку случайных файлов [n] и добавить ее в список воспроизведения a rray playlist [0], затем произвольную другую строку с файлами и добавьте ее снова в список воспроизведения [1] и т. д. (но не добавляйте, скажем, строку 6-го файла более одного раза). –

3

Используйте Array.Copy, где вы можете определить начало и конец исходного массива.

Например, чтобы скопировать элемент 15 файлов в плэйлист:

Array.Copy(Files, 15, 1, Playlist, Playlist.Length,1) 
Смежные вопросы