代码练习在 C# 中得到一个 object (包含匿名对象)的属性和属性值
2012-09-02 20:17
766 查看
代码能说明一切:
运行截图:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DearBruce.ConAppTest { enum Color { Red, Green, Blue } struct KeyValuePair<TKey, TValue> { public TKey Key { get; set; } public TValue Value { get; set; } } class Student { public Guid Id { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } } class Program { static void Main(string[] args) { string[] items = new string[] { AnonymousObject.Inspect(null), // (null) AnonymousObject.Inspect(new {}), // no properties AnonymousObject.Inspect(new { Id = Guid.NewGuid(), Name = "张三", Birthday = new DateTime(1987,5,6) }), // { Id: 2117c3cf-f99c-4636-9390-900fea0c085d, Name: 张三, Birthday: 1987/5/6 0:00:00 } AnonymousObject.Inspect(Color.Red), // no properties AnonymousObject.Inspect( new KeyValuePair<Guid, string>() { Key = Guid.NewGuid(), Value = "HelloWorld" }), // { Key: 67faae54-b6bd-4702-9175-54f6291a7199, Value: HelloWorld } AnonymousObject.Inspect( new Student { Id = Guid.NewGuid(), Name = "张三", Birthday = new DateTime(1987, 5, 6) }) // { Id: 8e189b10-0702-4927-8f65-81c86dcc33bd, Name: 张三, Birthday: 1987/5/6 0:00:00 } }; CommonHelper.Show(items); } } public static class AnonymousObject { public static string Inspect(object obj) { if (obj == null) { return "(null)"; } object[] args = Enumerable.Empty<Object>().ToArray(); IEnumerable<string> values = obj.GetType() .GetProperties() .Select(prop => String.Format("{0}: {1}", prop.Name, prop.GetValue(obj, args))); if (!values.Any()) { return "(no properties)"; } return "{ " + values.Aggregate((left, right) => left + ", " + right) + " }"; } } }
运行截图:
相关文章推荐
- 代码练习在 C# 中得到一个 object (包含匿名对象)的属性和属性值
- js中获取一个对象中包含的所有属性及属性值
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
- Java相同类型的两个对象比较属性值,得到不同属性的名称和对应的值,附代码实例
- C#中通过一个对象,得到属性(字符串形式)的值
- Object get["属性"]; java反射技术通过对象和属性名得到属性值
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- 遍历一个对象数组,返回一个包含相匹配的属性-值对的所有对象的数组
- [Play with T]_[C# 类与属性操作] ObjectMap 方法 将TTfrom类的对象转换为TEntity对象
- JavaScript创建一个object对象并操作对象属性的用法
- Javascript Object.defineProperty() 创建一个不能被修改的对象的属性
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
- 【转】分享:c#和javascript函数的相互调用(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。)
- 分享:c#和javascript函数的相互调用(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。)
- unity lua C# 这边 new 了一个GameObject 对象并发给Lua那边, 这时C# 这边在通过GC释放掉这个对象;lua 那边会报错;遇到这种问题的解决方案
- 一个经过改良的XMLHelper(包含了序列化,反序列化,创建xml文件,读取节点,C#对象与xml文件的相互转换等等。)
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- C# XML 新建一个包含属性的元素
- 使用innerHTML获取HTML代码时,HTML标记属性的双引号好多都消失不见了,原来是属性值中包含空格才会保留双引号
- 将一个对象的属性值赋给另一个对象的相同的属性 这两个对象必须都符合javaBean的标准