2017-08-07 9 views
0

は私がListboxデータソースをList <Tuple <string、string、int >> Item1のみに設定できますか?

public static class GlobalVariables 
{ 
    public static List<Tuple<string, string, int>> PopFile; 
} 

を持っていると私は、リストボックス

listBox1.DataSource = GlobalVariables.PopFile; 

へのデータソースとしてのPOPFileを使用しようとしている問題は、それが明らかに([文字列]、[文字列]、[INT]を追加していることです)をリストボックスに追加しますが、タプルの最初の項目だけを追加します。それは可能ですか?

私は

foreach (Tuple<string, string, int> i in GlobalVariables.PopFile) 
{ 
    listBox1.Items.Add(i.Item1); 
} 

を使用することができますが、私は.DataSourceを好みます。

+0

は、このASP.NETのWebフォームまたはWinFormsのですか? 'ListBox.DisplayMember'プロパティを使います。 – Dai

答えて

0

結局、ループすることを避け、タプルオブジェクトからデータを個別に追加するか、リストボックスにバインドする新しいオブジェクトを作成することはできません。

リストボックスは、リストボックスオブジェクトを自分自身で拡張して適切に処理できない限り、タプルオブジェクトで使用する入力パラメータを持っていませんが、上記のループに似た処理を行う必要があります。

0

LINQが便利になるかもしれません...

listBox1.DataSource = GlobalVariables.PopFile.Select(t => t.Item1).ToList() 
+0

Listは、その '.PopFile.ConvertAll(t => t.Item1);に対してより効率的なメソッドを持っています。 – Slai

関連する問題