如何合并两个文本?

时间:2019-07-20 09:38:34

标签: c# text multiline

我有一个Single line文本框和Multiline文本框,并且想要在单行文本框中包含一个单词,每行Multiline文本框中的单词

喜欢这个:

单行文本:"Hello"(I have to use variables)<br>

多行单词:

<br>
1998<br>
1999<br>
2000

预期结果:

  


  你好1998
  你好1999
  你好2000
  请帮我

我使用下面的代码,但是它不能仅与Single line文本框一起使用,并且我必须对两个文本框进行操作:

string left = string.Format(add.Text , Environment.NewLine);
        string right = string.Format(textBox1.Text, Environment.NewLine);
        string[] leftSplit = left.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
        string[] rightSplit = right.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

        string output = "";
        if (leftSplit.Length == rightSplit.Length)
        {
            for (int i = 0; i < leftSplit.Length; i++)
            {
                output += leftSplit[i] + ":" + rightSplit[i] + Environment.NewLine;
            }
        }
        result.Text = output;

能否请您就正确的方法给我建议?

2 个答案:

答案 0 :(得分:0)

TextBox.GetLineText(int)将为您提供帮助:

var singlelineText = singlelineTextBox.Text;
var composedLines = new List<string>();
for (var i = 0; i < multilineineTextBox.LineCount; i++)
{
  composedLines.Add(singlelineText + multilineineTextBox.GetLineText(i));
}

result.Text = string.Join(EnvironmentNewline, composedLines);

答案 1 :(得分:0)

如果单行只有一个单词,则无需将其拆分为一个数组。

让我们将其视为string left = "Hello";

和textbox1包含多行词,即

string right = string.Format(textBox1.Text, Environment.NewLine); // right variable contains 1998 \n 1999 \n 2000

然后您可以尝试以下方法

var concatString = right.Split(new[] { Environment.NewLine }, StringSplitOptions.None).Select(x => left + x);
string result = string.Join(Environment.NewLine , concatString);

.Net Fiddle

输出:

Hello1998
Hello1999
Hello2000