2013-01-28 4 views
-3

ArrayList USStates заполняется значениями, как показано, но если я хочу получить доступ к этим значениям в массиве, как это сделать? Ссылка на USStates(1) не работает. Может ли кто-нибудь объяснить эту строку кода?Присвоить значение массива некоторой переменной, Array заполняется

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; 
     } 
    } 
} 
+0

какой тип вопрос? – Cris

+0

Конечной целью является создание списка/источника, а затем привязка его к выпадающему списку? – Vishal

+0

Чтобы быть совершенно честным - если у вас возникли проблемы с синтаксисом языка программирования C#, вам будет довольно хорошо служить, прочитав книгу по этому вопросу. Это во всех смыслах - как для вас, так и для нас. –

ответ

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

+0

Это ... на самом деле не отвечает на вопрос. Тем не менее, он решает проблему OPs * basic *, которая не понимает, как работают списки, привязки и списки. –

+0

Использование arraylist является устаревшим решением, и изменить не сложно –

+0

Хотя я согласен, я подозреваю, что OP понадобится * много * более базового объяснения. –

1

Возникает вопрос немного запутанным/неполные, как-то если ваша цель - просто сделать te lookup table и привяжите его к выпадающему списку, тогда вы можете сделать это.

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(); 
Смежные вопросы