Как использовать "{0}" в File.WriteAllLines?

Итак, я пытаюсь создать несколько файлов с разными именами. Я пытаюсь изменить одно число в имени файла следующим образом, но он не позволяет мне использовать "{0}" для вставки строки.

String value = "1";

foreach (var message in reddit.User.PrivateMessages) {
  var pm = message as PrivateMessage;

  File.WriteAllText(
    (@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value), 
    pm.Body);
}

Главное, я хочу иметь возможность создавать несколько файлов с циклом foreach. Я могу обрабатывать int отдельно.

3 ответа

Решение

Вы хотите форматирование (String.Format):

File.WriteAllText(
   String.Format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value),
   pm.Body);

В C#6.0 вы можете поместить это как интерполяцию строки:

File.WriteAllText(
   $@"C:\Users\MyName\Desktop\Programming\test{value}.txt",
   pm.Body);

Ваш код в настоящее время не работает; ты не учел string.Format(:

File.WriteAllText(string.Format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value), pm.Body);

Вы не можете сделать это с File.WriteAllText,

Попробуйте это используя string.format

 File.WriteAllText(string.format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value), pm.Body);

или с помощью C# 6.0, как это

File.WriteAllText($@"C:\Users\MyName\Desktop\Programming\test{value}.txt", pm.Body);
Другие вопросы по тегам