gpt4 book ai didi

c# - 如何在 C# 中迭代​​匿名对象的属性?

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

我想将匿名对象作为方法的参数,然后遍历其属性以将每个属性/值添加到动态 ExpandoObject

所以我需要的是从

new { Prop1 = "first value", Prop2 = SomeObjectInstance, Prop3 = 1234 }

了解每个属性的名称和值,并能够将它们添加到 ExpandoObject

我该如何实现?

旁注:这将在我的许多单元测试中完成(我用它来重构设置中的大量垃圾),因此性能在某种程度上是相关的。我对反射知之甚少,无法肯定地说,但据我所知,它的性能非常重要,所以如果可能的话,我宁愿避免它......

后续问题:正如我所说,我将这个匿名对象作为方法的参数。我应该在方法的签名中使用什么数据类型?如果我使用 object,所有属性都可用吗?

最佳答案

foreach(var prop in myVar.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
{
Console.WriteLine("Name: {0}, Value: {1}",prop.Name, prop.GetValue(myVar,null));
}

关于c# - 如何在 C# 中迭代​​匿名对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594527/

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