1

我正在尝试使用存储在对象中的单个对象实例的List<T>属性,但我似乎无法直接访问这些属性。

我有一个对象 ( sportsCarVehicle),它在其内部存储用户定义的名称 ( strVehicleName)(在其他属性中,但这并不重要)。然后将该对象存储在一个List<sportsCarVehicle>名为 的对象中sportsCarVehicleStorage
我需要访问sportsCarVehiclein的每个实例List<sportsCarVehicle>并将值传递strVehicleName给表单上的组合框。

我假设我需要某种循环来循环遍历每个实例并将名称传递给组合框,但我的主要问题是无法访问我需要的属性。sportsCarVehicle实例没有可引用的名称。
我应该注意的另一件事:在方法sportsCarVehicle中调用了构造函数sportsCarVehicleStorage.Add()

关于我如何做到这一点的任何建议?

4

4 回答 4

2

你不能这样做吗

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在该类中是公开的。

于 2012-05-29T09:57:09.727 回答
1

您可以使用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);
}
于 2012-05-29T10:00:18.183 回答
0

另一种方法是将sportsCarVehicle 列表直接绑定到组合框,例如:

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

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

myComboBox.DataSource = sportsCarVehicleStorage;
myComboBox.DisplayMember = "strVehicleName";
于 2012-05-29T10:09:16.260 回答
0
foreach (SportsCarVehicle car in myListName)
{
    //do stuff here
}

这是最基本的示例,您可以使用 PLINQ 等以更简化的方式进行操作。

于 2012-05-29T09:58:29.180 回答