gpt4 book ai didi

c# foreach(对象中的属性)...是否有一种简单的方法可以做到这一点?

转载 作者:IT王子 更新时间:2023-10-29 03:39:22 26 4
gpt4 key购买 nike

我有一个包含几个属性的类(如果有什么不同的话,都是字符串)。
我还有一个列表,其中包含该类的许多不同实例。

在为我的类创建一些单元测试时,我决定要遍历列表中的每个对象,然后遍历该对象的每个属性...

我认为这样做会像...一样简单

foreach (Object obj in theList)
{
foreach (Property theProperties in obj)
{
do some stufff!!;
}
}

但这没有用! :(我收到这个错误...

“foreach 语句不能对‘Application.Object’类型的变量进行操作,因为‘Application.Object’不包含‘GetEnumerator’的公共(public)定义”

有没有人知道没有大量 if 和循环或者没有陷入任何过于复杂的事情的方法?

最佳答案

试一试:

foreach (PropertyInfo propertyInfo in obj.GetType().GetProperties())
{
// do stuff here
}

另请注意,Type.GetProperties() 有一个重载,它接受一组绑定(bind)标志,因此您可以根据不同的标准(如可访问性级别)过滤掉属性,有关详细信息,请参阅 MSDN:Type.GetProperties Method (BindingFlags)最后但同样重要的是不要忘记添加“system.Reflection”程序集引用。

例如解析所有公共(public)属性:

foreach (var propertyInfo in obj.GetType()
.GetProperties(
BindingFlags.Public
| BindingFlags.Instance))
{
// do stuff here
}

请告诉我这是否按预期工作。

关于c# foreach(对象中的属性)...是否有一种简单的方法可以做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com