C # Добавить в последнюю строку символ для всех, а затем один за другим?

#c# #text

#c# #текст

Вопрос:

Я создаю консольное приложение на c #, которое фактически берет все строки из text1 и добавляет к нему в конце каждой строки текст, который является «.php?» или «.html? и эти тексты также являются строками из text2, я хочу напечатать первый в text2 в конце каждой строки в text1. Затем возьмите второй в text2 и делайте то же самое, пока он не завершит text2?

Вот мой код:

 string[] resultConfig = File.ReadAllLines("keywords.txt");
string[] readParameters = File.ReadAllLines("param.txt");
            for (int i = 0; i < readParameters.Length; i  )
            {
                for (int x = 0; x < resultConfig.Length ; x  )
                {
                    resultConfig[x] = resultConfig[x]   readParameters[i];
                    Console.WriteLine(resultConfig[x]);
   
                }
                
            }
 

ВЫВОД:
**

 keyboards.php?.html?.asp?
karachi.php?.html?.asp?
keychain.php?.html?.asp?
in khobar.php?.html?.asp?
lebanon.php?.html?.asp?
lights.php?.html?.asp?
london.php?.html?.asp?
must have.php?.html?.asp?
 

**

**

 WHAT IT SHOULD BE:
keyboards.php?
karachi.php?
keychain.php?
in khobar.php?
lebanon.php?
lights.php?
london.php?
must have.php?
keyboards.html?
karachi.html?
keychain.html?
in khobar.html?
lebanon.html?
lights.html?
london.html?
must have.html?
 

**
и т.д…

** КЛЮЧЕВЫЕ СЛОВА.ТЕКСТ СОДЕРЖИТ **

 keyboards
karachi
keychain
in khobar
lebanon
lights
london
must have
 

** ПАРАМЕТР.ТЕКСТ СОДЕРЖИТ **

 .php?
.asp?
.html?
 

Комментарии:

1. Можете ли вы привести пример вашего keywords.txt и param.txt ?

2. Я добавил его, проверьте это

3. Вы не сможете добавить в массив больше элементов, чем он инициализирован (похоже, вы хотите увеличить размер resultConfig в 3 раза). Возможно, вы захотите использовать List<string> вместо.

4. Как я могу сохранить результаты в текстовом файле?

Ответ №1:

Ваша проблема в этой строке resultConfig[x] = resultConfig[x] readParameters[i]; . В этой строке вы меняете свою строку, resultConfig[x] и поскольку вы используете вложенный цикл, это происходит для каждой строки в вашем *param.txt ` досье.

Чтобы записать желаемый результат в консоли, попробуйте вместо этого этот код:

             string[] resultConfig = File.ReadAllLines("keywords.txt");
            string[] readParameters = File.ReadAllLines("param.txt");
            for (int i = 0; i < readParameters.Length; i  )
            {
                for (int x = 0; x < resultConfig.Length ; x  )
                {
                    string line = resultConfig[x]   readParameters[i];
                    Console.WriteLine(line);
   
                }
                
            }
 

Комментарии:

1. Как я могу сохранить результаты в текстовом файле?

Ответ №2:

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

Что-то вроде этого:

 string[] resultConfig = File.ReadAllLines("keywords.txt");
string[] readParameters = File.ReadAllLines("param.txt");

for (int x = 0; x < resultConfig.Length ; x  )
{
  for (int i = 0; i < readParameters.Length; i  )
  {
    Console.WriteLine(resultConfig[x]   readParameters[i]);
  }
}
 

Комментарии:

1. СПАСИБО, СРАБОТАЛО КАК CHARRM <3, но если я хочу добавить еще что-то такое же, как readParameter ? а также это будет после readParameter я просто сделаю то же самое?

2. Вы можете просто объединить больше строк, если хотите Console.WriteLine(resultConfig[x] readParameters[i] more); .

3. Как я могу сохранить результаты в текстовом файле?

Ответ №3:

Похоже, вы хотите сохранить все эти результаты в resultConfig массиве, но вы не можете просто добавить в массив больше элементов, чем он был инициализирован — сначала вы должны изменить его размер с помощью Array.Resize(ref resultConfig, resultConfig.Length * readParameters.Length) .

Однако даже тогда будет немного сложно добавить к первому набору элементов, а затем добавить новые элементы для дополнительных параметров (это можно сделать, если это действительно необходимо).

Вместо этого я бы создал новый List<string> , чтобы сохранить результаты, и оставил исходные массивы такими, какие они есть:

 string[] resultConfig = 
{
    "keyboards",
    "karachi",
    "keychain",
    "in khobar",
    "lebanon",
    "lights",
    "london",
    "must have"
};

string[] readParameters = {".php?", ".html?", ".asp?"};

var allCombinations = new List<string>();

for (int i = 0; i < readParameters.Length; i  )
{
    for (int x = 0; x < resultConfig.Length; x  )
    {
        allCombinations.Add(resultConfig[x]   readParameters[i]);
        Console.WriteLine(resultConfig[x]   readParameters[i]);
    }
}
 

Комментарии:

1. Как я могу сохранить результаты в текстовом файле?

2. File.WriteAllLines(filePath, allCombinations);