if (DataContext is IEnumerable) { titles = new List<string>(); datas = new List<List<string>>(); List<object> collection = (List<object>)DataContext; for (int i = 0; i < collection.Count;i++ ) { List<string> data = new List<string>(); Type type = collection[i].GetType(); foreach (PropertyInfo pi in type.GetProperties()) { object value = pi.GetValue(collection[i], null);//用pi.GetValue获得值 string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作 //获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数 if (value.GetType() == typeof(int)) { data.Add(value.ToString()); } else if (value.GetType() == typeof(int)) { data.Add(Int32.Parse(value.ToString()).ToString("##,###")); } else if (value.GetType() == typeof(double)) { data.Add(double.Parse(value.ToString()).ToString("##,###.##")); } else if (value.GetType() == typeof(float)) { data.Add(float.Parse(value.ToString()).ToString("##,###.##")); } else if (value.GetType() == typeof(string)) { data.Add(value.ToString()); } else if (value.GetType() == typeof(DateTime)) { data.Add(DateTime.Parse(value.ToString()).ToString("yyyy-MM-dd")); } else { data.Add(value.ToString()); } } } }