如何同时迭代两个非平凡的类对象以检查它们的属性?
这些post1 post2讨论了如何使用通用的默认数据结构来做到这一点,但是如果它是一个自定义类并且我无法修改它,比如像
public class A
{
public int propA { get; set; }
public int propB { get; set; }
...
}
它也没有GetEnumerator()方法。使用反射时如何执行类似于 Python 的 zip 的操作?所以我可以做这样的事情:
foreach(var pair in zip(myClassObj1.GetType().GetProperties(), myClasObj2.GetType().GetProperties())
{
var name1 = pair.Item1.Name;
var name2 = pair.Item2.Name;
var value1 = pair.Item1.GetValue(myClassObj1, null);
var value2 = pair.Item2.GetValue(myClassObj2, null);
// do things
}
相关分类