2015-09-21 20 views
-2

任何人都可以推荐一种更好的方式来将字符串连接在一起。不同的方式字符串加入

我有2只列出了我这样的拼接:

textBox1.Text = String.Join(Environment.NewLine, changesWithValues); 

但是我得到了数据已经得到了在这一点应该是有。

我在此位的所有代码如下这样:

private void converToText(Dictionary<string, int> dictionaryList) 
    { 
     List<KeyValuePair<string, int>> changesWithValues = dictionaryList.ToList(); 

     display(changesWithValues); 
    } 

    private void display(List<KeyValuePair<string, int>> changesWithValues) 
    { 
     textBox1.Text = String.Join(Environment.NewLine, changesWithValues); 
    } 

    private void Show_Click(object sender, System.EventArgs e) 
    { 
     converToText(_dictionary); 
    } 
+0

“我得到的数据已经存在了,应该在那里。” ,你能给出一个具体的例子,包括输入和输出,以及预期的输出吗?此外,这看起来像Java,不要忘记标记为 – Joeblade

+1

*然而,我得到的数据已经有点应该在那里。*请更好地解释这句话。不知道这意味着什么。 –

+0

当我得到数据时,它看起来像这样:[/ Tax Marker Ripper v1/Help_Document.docx,2]方括号[]和逗号应该在那里我不知道他们来自哪里 –

回答

3

您需要将KeyValuePairKeyValue组合成你想要的格式,例如:

textBox1.Text = String.Join(Environment.NewLine, changesWithValues.Select(kvp => string.Format("{0} {1}", kvp.Key, kvp.Value))); 
0

您还没有加入字符串但KeyValuePair实例。因此,您实际上正在使用string.Join方法的重载,该方法将一组对象而不是一组字符串作为输入,它首先将ToString()应用于这些实例;这会为您提供包含键和值对的字符串(请参阅the method reference)。

我想你需要concatenate只是对的关键。在这种情况下,这是你所需要的:

textBox1.Text = String.Join(Environment.NewLine, changesWithValues.Select(x => x.Key)); 
+0

从此行输出的结果是/ Tax Marker Ripper v1/Help_Document.docx该数字表示每个路径有多少个条目。这条线切断了数值 –