2015-09-21 2 views
-2

Может ли кто-нибудь рекомендовать лучший способ соединения строки вместе.различные способы String Присоединиться

У меня есть 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

Вы должны объединить Key и Value в KeyValuePair в формат, который вы хотите, например,

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).

Я предполагаю, что вам нужно объединить только ключи от пар. В этом случае, это то, что вам нужно:

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

Результат, выводимый из этой строки, равен/Tax Marker Ripper v1/Help_Document.docx. Число указывает, сколько записей имеет каждый путь. Эта строка сокращает числовые значения –

Смежные вопросы