在C#中,将一个对象转换为字典可以使用反射来实现。以下是一个示例代码:\n\ncsharp\nusing System;\nusing System.Collections.Generic;\nusing System.Reflection;\n\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n\npublic static class ObjectExtensions\n{\n public static Dictionary<string, object> ToDictionary(this object obj)\n {\n var dictionary = new Dictionary<string, object>();\n var properties = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);\n\n foreach (var property in properties)\n {\n var value = property.GetValue(obj);\n dictionary.Add(property.Name, value);\n }\n\n return dictionary;\n }\n}\n\npublic class Program\n{\n public static void Main()\n {\n var person = new Person { Name = "John", Age = 30 };\n var dictionary = person.ToDictionary();\n\n foreach (var keyValuePair in dictionary)\n {\n Console.WriteLine($"{keyValuePair.Key}: {keyValuePair.Value}");\n }\n }\n}\n\n\n在上面的示例中,我们定义了一个Person类,并在ObjectExtensions类中添加了一个ToDictionary方法扩展对象类型。该方法使用反射获取对象的属性,并将属性名和属性值添加到字典中。在Main方法中,我们创建了一个Person对象,并将其转换为字典,并使用foreach循环输出字典的键值对。\n\n输出结果为:\n\n\nName: John\nAge: 30\n\n\n通过这种方式,我们可以将一个对象转换为字典,并以键值对的形式访问对象的属性和值。

C# 对象转字典:使用反射实现 - 代码示例及详解

原文地址: https://www.cveoy.top/t/topic/qojU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录