Zee*_*nef 2 c# casting generic-list
是否有任何方法可以将未知对象转换为通用列表,以通过给定的ProperyName从对象获取项目列表.对象可以是任何通用列表List<Country>,List<Area>或者List<Region>我需要通过给定获取数据displayMember.
例如:
List<City> listCities = new List<City>(); //Cities data with (CityID, CityName)
object dataSource = listCities;
string displayMember = "CityName";
string valueMember = "CityID";
Run Code Online (Sandbox Code Playgroud)
如何CityName从dataSource对象类型的对象获取List ?
基本上你必须使用反射.例如:
// This assumes it really is just a List<T>...
IEnumerable list = (IEnumerable) dataSource;
Type elementType = list.GetType().GetGenericArguments()[0];
PropertyInfo property = elementType.GetProperty(displayMember);
List<object> displayValues = list.Cast<object>()
.Select(v => property.GetValue(v, null))
.ToList();
Run Code Online (Sandbox Code Playgroud)
(你想要添加一堆错误检查 - 例如,那property不是null......)
| 归档时间: |
|
| 查看次数: |
4922 次 |
| 最近记录: |