0

次のような型オブジェクトのリストがあります。List <Sentence> sentences = new List<Sentence>();

リストには、リストボックスに表示したいさまざまな文字列/文が含まれていますが、そのリストを表示しようとするたびに、リストボックスが表示されます (コレクション)

私が持っているもの:listBox1.Items.Add(sentences);

リスト内のテキスト/文がリストボックスで読めるように、そのオブジェクトを文字列に変換する方法はありますか?

文構造の内容は文字列変数のみです。

ここに画像の説明を入力

4

5 に答える 5

4

リストボックス内ののインスタンスを表すものを表示したい場合はSentence、オーバーライドしてくださいToString()

public class Sentence
{
    public override string ToString()
    {
        //return something meaningful here.
    }

    // Rest of the implementation of Sentence
}
于 2013-03-17T21:17:14.293 に答える
1

コレクション項目自体 (つまりsentences) を ListBox コントロールに追加しています。ToString()-class の-methodをオーバーライドしSentenceて、文のテキスト値を返す必要があります。次に、foreach ループを使用して、次のように ListBox に文を追加します。

foreach(Sentence sen in sentences){
  ListBox1.Items.Add(sen.ToString());
}
于 2013-03-17T21:18:21.873 に答える
0

あなたは文字列を見ています。具体的には、そのオブジェクトの .toString() が表示されています。

そこにコレクションのコンテンツを渡したい場合は、代わりに .AddRange() を試してください。

于 2013-03-17T21:16:23.810 に答える
0

オーバーライドする必要がありますToString:

public class Sentence
{
    public string Text{ get; set; }

    public override string ToString()
    {
        return this.Text;
    }
}

Formatting無効にする必要があることに注意してください。

listBox1.FormattingEnabled = false;

ここで述べたように。

もう 1 つの方法は、Linq と を使用することですAddRange

listBox1.Items.AddRange(sentences.Select(s => s.Text).ToArray());

Sentence(クラスにプロパティがあると仮定Text

于 2013-03-17T21:18:10.890 に答える