簡體   English   中英

將對象轉換為通用列表以獲取項目列表

[英]Cast Object into Generic List to get List of Items

是否有任何方法可以將未知對象轉換為通用列表,以通過給定的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";

如何從對象類型的dataSource對象獲取CityName列表?

基本上你必須使用反射。 例如:

// 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();

(你想添加一堆錯誤檢查 - 例如,該property不為null ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM