我正在尝试使用存储在List<T>
对象中的单个对象实例的属性,但我似乎无法直接访问这些属性。
我有一个对象(sportsCarVehicle
),它存储用户定义的名称(strVehicleName
)(在其他属性中,但这并不重要)。然后将对象存储在名为List<sportsCarVehicle>
的{{1}}对象中
我需要访问sportsCarVehicleStorage
中sportsCarVehicle
的每个实例,并将List<sportsCarVehicle>
的值传递给表单上的组合框。
我假设我需要某种循环来遍历每个实例并将名称传递给组合框,但我的主要问题是无法访问我需要的属性。 strVehicleName
个实例没有可引用的名称
还有一件事需要注意:sportsCarVehicle
方法中的sportsCarVehicle
构造函数被调用。
关于我如何做到这一点的任何建议?
答案 0 :(得分: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
在该类中公开。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
foreach (SportsCarVehicle car in myListName)
{
//do stuff here
}
这是最基本的例子,您可以使用PLINQ等以更简化的方式进行。
答案 3 :(得分:0)
另一种方法是将sportsCarVehicle列表直接绑定到comboBox,例如:
List<sportCarVehicle> sportsCarVehicleStorage= new List<sportsCarVehicle>;
// Set up list content here
// ...
myComboBox.DataSource = sportsCarVehicleStorage;
myComboBox.DisplayMember = "strVehicleName";