-3

ArrayListUSStatesには示されているように値が取り込まれていますが、配列内のこれらの値にアクセスしたい場合はどうすればよいですか? 経由での参照はUSStates(1)機能しません。このコード行を説明できる人はいますか?

USStates.Add(new USState("Alabama", "AL"));

完全なコード:

// Populate the list box using an array as DataSource.
ArrayList USStates = new ArrayList();
USStates.Add(new USState("Alabama", "AL"));
USStates.Add(new USState("Washington", "WA"));
USStates.Add(new USState("West Virginia", "WV"));
USStates.Add(new USState("Wisconsin", "WI"));
USStates.Add(new USState("Wyoming", "WY"));
ListBox1.DataSource = USStates;

// Set the long name as the property to be displayed and the short
// name as the value to be returned when a row is selected.  Here
// these are properties; if we were binding to a database table or
// query these could be column names.
ListBox1.DisplayMember = "LongName";
ListBox1.ValueMember = "ShortName";

public class USState
{
    private string myShortName;
    private string myLongName;

    public USState(string strLongName, string strShortName)
    {
        this.myShortName = strShortName;
        this.myLongName = strLongName;
    }

    public string ShortName
    {
        get
        {
            return myShortName;
        }
    }

    public string LongName
    {
        get
        {
            return myLongName;
        }
    }
}
4

2 に答える 2

1

Generic Listパフォーマンスのニーズに使用することをお勧めします(Boxing unboxing, ...)

List<USState> listToBind = new List<USState> { new USState("Alabama", "AL"), new USState("Washington", "WA") };
ListBox1.DataSource = listToBind ;
ListBox1.DisplayMember = "ShortName";
ListBox1.ValueMember = "LongName"; 

リンク: http: //msdn.microsoft.com/fr-fr/library/vstudio/6sh2ey19.aspx

于 2013-01-28T09:55:25.340 に答える
1

質問は少し紛らわしい/不完全です。ルックアップテーブルを作成してドロップダウンリストにバインドするだけの場合は、このようにすることができます。

private static Hashtable LookUpIdTable = null;

次に、メイン関数内または別のクラスを作成する場合:

            LookUpIdTable.Add("AL", "Alabama");
            LookUpIdTable.Add("AK", "Alaska");
            LookUpIdTable.Add("AS", "American Samoa");
            LookUpIdTable.Add("AZ", "Arizona");
            LookUpIdTable.Add("AR", "Arkansas");
            LookUpIdTable.Add("CA", "California");
            LookUpIdTable.Add("CO", "Colorado");
            LookUpIdTable.Add("CT", "Connecticut");

そしてバインドしたいとき:

        DropDown.DataSource = LookUpIdTable
        DropDown.DataValueField = "Key";
        DropDown.DataTextField = "Value";
        DropDown.DataBind();
于 2013-01-28T10:10:04.713 に答える