2

リストボックスから選択した値を文字列に取得する際に問題が発生しています。

リスト ボックスには複数の値が含まれています。これらを AZ と呼びましょう。基本的に、選択したアイテムを文字列にコピーしたい。

var listarray = new System.Collections.ArrayList(listboxName.SelectedItems);

string myval = "";

foreach (var arr in listarray)
{
    myval = dep.ToString();
    Console.WriteLine(myval); // this shows all the selected values
}

string finalStr = "some text before the values" + myval;
Console.WriteLine(finalStr);

文字列に「値A、B、C、D ...の前のテキスト」を表示させたいのですが、代わりに「値Aの前のテキスト」を出力します

最後Console.WriteLineは、選択されたすべての値ではなく、1 つの値のみを示します。ループfinalStr内にを追加しようとしましたが、これにより、複数の配列値を持つ 1 つの文字列だけではなく、 の複数のインスタンスが作成されます。foreachfinalStr

4

2 に答える 2

5

String.Joinを使用して、アイテム コレクションから連結された文字列を作成します。

string finalStr = "Some text before the values " + 
           String.Join(", ", listboxName.SelectedItems.Cast<YourItemType>());
于 2013-07-21T21:12:52.377 に答える
0

あなたは常に myval を dep.ToString の現在の値に設定しています - それを連結する必要があります (dep ではなく arr を意味していたと思います):

myval += arr.ToString() + ", ";

コンマを処理する最も簡単な方法は、追加のリストを作成し、String.Join を使用することです。

var selected = new List<string>();
foreach (var arr in listboxName.SelectedItems)
{
    selected.Add(arr.ToString());    
}

string finalStr = "some text before the values" + String.Join(", ", selected);
于 2013-07-21T21:10:41.000 に答える