我有一个类,一些类属性是类列表。我想现在浏览列表中的所有元素。但无论我尝试什么,我都无法抓住列表中的对象。有没有人为我的问题找到解决方法?
public class Program
{
static void Main(string[] args)
{
Tire black = new Tire()
{
id = 5
};
Tire red = new Tire()
{
id = 8
};
Tire purple = new Tire()
{
id = 10
};
//Create my List
List<Tire> mylist = new List<Tire>();
List.Add(black);
List.Add(red);
List.Add(purple);
//Define the car
car mycar = new car()
{
id = 20,
Tire = mylist
};
在这里,我的主要创建了一些类和列表:
var type = car.GetType();
var properties = type.GetProperties();
foreach (var propertyInfo in properties)
{
if (propertyInfo.ToString().Contains("List"))
{
var propValue = propertyInfo.GetValue(this);
...
我现在想要浏览我的Tire-property-list中的所有元素,但无论我做什么,我都不会得到List-Property中的实际对象(黑色,红色和紫色)。 这是我到目前为止所尝试的:
df['sales'] = [ index for index, val in enumerate(['sales', 'accounting', 'hr', 'technical', 'support', 'management',
'IT', 'product_mng', 'marketing', 'RandD'])]
如果我调试并查看propValue变量,我会看到我的所有三个对象,但我找不到实际检查它们并再次获取其属性的方法...
答案 0 :(得分:0)
简单地说
foreach (var tire in car.attributes)
{
// tire is an instance of the Tire class
}
答案 1 :(得分:0)
您的实施中存在许多问题:
填充列表时
//Create my List
List<Tire> mylist = new List<Tire>();
List.Add(black);
List.Add(red);
List.Add(purple);
如果您想在列表中添加轮胎,则应该是:
//Create my List
List<Tire> mylist = new List<Tire>();
mylist.Add(black);
mylist.Add(red);
mylist.Add(purple);
在您的课程结构
中你的车有几个轮胎,对吧?因此,班级应该有轮胎清单,而不仅仅是轮胎:
public class Car
{
public int Id {get; set;}
public List<Tire> TireList {get; set;}
}
当您要实例化汽车时
在构造函数调用中无法访问mylist
,必须在调用构造函数后设置它(或者创建一个可以在参数中包含轮胎列表的构造函数):
//Define the car
Car mycar = new Car()
{
Id = 20
};
mycar.TireList = mylist;
快速工作演示
我没有解决所有问题,但这是一个工作示例(ConsoleApp):
class Program
{
static void Main(string[] args)
{
Tire black = new Tire()
{
Id = 5
};
Tire red = new Tire()
{
Id = 8
};
Tire purple = new Tire()
{
Id = 10
};
//Create my List
List<Tire> mylist = new List<Tire>();
mylist.Add(black);
mylist.Add(red);
mylist.Add(purple);
//Define the car
Car mycar = new Car()
{
Id = 20
};
mycar.TireList = mylist;
foreach (var tire in mycar.TireList)
{
Console.WriteLine(tire.Id);
}
Console.ReadKey();
}
}
public class Car
{
public int Id { get; set; }
public List<Tire> TireList { get; set; }
}
public class Tire
{
public int Id { get; set; }
public double Value { get; set; }
}
注意强>
最后但同样重要的是,请注意在对象名称中使用大写字母