Доступ к свойствам объектов в списке <T>

Я пытаюсь использовать свойство отдельных экземпляров объекта, хранящихся вList<T> объект, но я не могу получить доступ к свойствам напрямую.

У меня есть объект (sportsCarVehicle) в котором хранится определенное пользователем имя (strVehicleName) (среди других свойств, но это не важно) внутри себя. Затем объект сохраняется вList<sportsCarVehicle> объект называетсяsportsCarVehicleStorage.
Мне нужно получить доступ к каждому экземпляруsportsCarVehicle вList<sportsCarVehicle> и передать значениеstrVehicleName в поле со списком на форме.

Я предполагаю, что мне понадобится какой-то цикл для циклического прохождения каждого экземпляра и передачи имени в поле со списком, но моя главная проблема не в том, чтобы получить доступ к нужному мне свойству.sportsCarVehicle экземпляры не имеют ссылочного имени.
Еще одна вещь, которую я должен отметить: конструктор дляsportsCarVehicle называется в пределахsportsCarVehicleStorage.Add() метод.

Любые предложения о том, как я мог это сделать?

 SWeko29 мая 2012 г., 11:57
and также strVehicleName - ужасное имя для собственности. Только чтоName будет намного короче и так же наглядно.
 Max Keller29 мая 2012 г., 11:54
Вы уверены, что свойства, к которым вы хотите получить доступ, помечены как общедоступные?
 Steve29 мая 2012 г., 11:55
Можете ли вы добавить код, чтобы лучше понять вашу проблему?
 Deadrust29 мая 2012 г., 11:57
Ух ты. Теперь я чувствую себя глупо, ха-ха. Спасибо, это была проблема (не для публичного доступа) = P
 George Duckett29 мая 2012 г., 11:56
Ты ждешьsportsCarVehicleStorage.strVehicleName работать (а не что-то вродеsportsCarVehicleStorage[i].strVehicleName в цикле)?

Ответы на вопрос(4)

Вы можете использоватьforeach для циклического перемещения по списку, присваивая каждому члену списка именованную переменную, например:

foreach (sportsCarVehicle scv in sportsCarVehicleStorage)
{
  //scv is the name of the currently looping sportsCarVehicle object
  //use scv.strVehicleName to access the property.
  myComboBox.Items.Add(scv.strVehicleName);
}

Не могли бы вы сделать это

List<string> lst = new List<string>{"Hello", "World"};

 int len = lst[0].Length;

Вот.Length является свойством строки. Пока это свойство является публичным, мы можем получить к нему доступ.

В твоем случа

List<sportsCarVehicle> sportsCarVehicleStorage = new List<sportsCarVehicle>();

// Some code to populate list.

mycombobox.Items = sportsCarVehicleStorage
                   .Select(x => x.strVehicleName).ToArray();

Сделай, конечно, собственностьstrVehicleName публично в этом классе.

нно к comboBox, например:

List<sportCarVehicle> sportsCarVehicleStorage= new List<sportsCarVehicle>;

// Set up list content here
// ...

myComboBox.DataSource = sportsCarVehicleStorage;
myComboBox.DisplayMember = "strVehicleName";
foreach (SportsCarVehicle car in myListName)
{
    //do stuff here
}

вы можете использовать PLINQ и т. Д., Чтобы сделать это более рациональным способом.

 Deadrust29 мая 2012 г., 12:01
Да, я использовал эту структуру для передачи свойства имени каждого экземпляра в поле со списком. Моя проблема заключалась в том, что я не смог бы получить доступ к свойству name. Спасибо, в любом случае

Ваш ответ на вопрос