如何在 C# 中同时迭代两个非平凡类对象的属性,类似于 Python 的 zip 方法

如何同时迭代两个非平凡的类对象以检查它们的属性?


这些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

}


慕标琳琳
浏览 147回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python