2015-02-14 3 views
-3

Я пытаюсь сделать цикл foreach, где он будет выбирать каждую строку в моем массиве и добавлять ее к пути, который является строкой, и сохраняет путь к изображению, вот что у меня есть далеко:Выполнение foreach в массиве

string[] Images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png" }; 
string Path = "Assets/Images/"; 

     if (LevelUp) 
     { 
      foreach() 
      { 

      } 
     } 

Как вы можете видеть, что я хочу, чтобы петля Еогеаспа пройти через каждую строку в массиве изображений, для каждой строки в массиве изображений Я хочу, чтобы это было добавлено в строку пути, чтобы конечный результат для Например, «Активы/Изображения/Стар_00001.png»

Кто-нибудь знает, как я должен это делать?

+0

Что вы хотите делать с «Star_00002.png»? Вы только показали результат для 'Star_00001.png'. Что вы * пробовали * с помощью цикла foreach? На данный момент ваш вопрос неясен. –

+1

'Path.Combine'? 'String.Concat'? Вы хотите начать с основ, например, как создать правильный цикл [foreach] (https://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx). –

+0

@JonSkeet Это был просто пример чувака, чтобы дать людям толчок –

ответ

1

foreach петля имеет синтаксис:

foreach(T ident in collection) { 

с T типа элементов, ident имя переменной и collection объекта, который поддерживает интерфейс IEnumerable.

Таким образом, вы можете реализовать:

string[] images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png" }; 
string path = "Assets/Images/"; 
if (LevelUp) { 
    foreach(string file in images) { 
     string thepath = Path.Combine(path,file); 
     //do something with file or thepath, like 
     Console.WriteLine(thepath); 
    } 
} 

Последнее замечание в том, что консенсус C# 's является то, что переменные начинают с нижнего регистра и типа имен с заглавной буквы.

+0

@stuartd: вот почему я начал с нижнего регистра, который также рекомендуется с помощью C# стандарта ... –

1
string[] Images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png" }; 
string path = "Assets/Images/"; 

if (LevelUp) 
    Images = Images.Select(image => Path.Combine(path, image)).ToArray(); 
1

Не рекомендуется создавать пути к файлам с помощью конкатенации строк. Рекомендуемый способ - использовать Path.Combine, который предоставляется в System.IO. Рассмотрим приведенный ниже пример:

 string[] Images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png" }; 
     string path = "Assets/Images/"; 

     if (LevelUp) 
     { 
      foreach (string s in Images) 
      { 
       // You can store result in an array or sth depending on what you 
       // are trying to achieve 
       string result = Path.Combine(path, s); 
      } 
     } 
Смежные вопросы