【问题标题】:C# Append at last line a character on all then one by one?C#在最后一行追加一个字符然后一个接一个?
【发布时间】:2026-01-09 11:15:02
【问题描述】:

我正在制作控制台 c# 应用程序,它实际上从 text1 中获取所有行,并在每行的末尾附加一个文本“.php?”或“.html?这些文本也是来自 text2 的行,我想在 text1 的每一行末尾打印 text2 中的第一个。然后在 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?

** 等等……

** KEYWORDS.TXT 包含 **

keyboards
karachi
keychain
in khobar
lebanon
lights
london
must have

** PARAM.TXT 包含 **

.php?
.asp?
.html?

【问题讨论】:

  • 你能提供一个你的keywords.txtparam.txt的例子吗?
  • 我加了检查一下
  • 您将无法向数组添加比初始化时更多的项目(看来您希望将resultConfig 的大小增加 3 倍)。您可能想改用List&lt;string&gt;
  • 如何将结果保存在文本文件中?

标签: c# text


【解决方案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);
   
                }
                
            }

【讨论】:

  • 如何将结果保存在文本文件中?
【解决方案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]);
  }
}

【讨论】:

  • THANKS WORKED LIKE CHARRM
  • 如果你喜欢Console.WriteLine(resultConfig[x] + readParameters[i] + more);,你可以连接更多的字符串。
  • 如何将结果保存在文本文件中?
【解决方案3】:

您似乎想将所有这些结果保存在 resultConfig 数组中,但您不能只向数组中添加比初始化时更多的项目 - 您必须先使用 Array.Resize(ref resultConfig, resultConfig.Length * readParameters.Length) 调整它的大小。

但是,即使这样,附加到第一组项目然后为附加参数添加新项目也会有点棘手(如果确实需要,可以这样做)。

相反,我会创建一个新的List&lt;string&gt; 来保存结果,并将初始数组保持原样:

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]);
    }
}

【讨论】:

  • 如何将结果保存在文本文件中?
  • File.WriteAllLines(filePath, allCombinations);
最近更新 更多