[英]Create a List with the same type that a class property
我想創建一個列表,獲取屬性在某個類列表中的所有值,並將這些值添加到另一個類型與類屬性相同的列表中。
讓我們假設我有Book類:
public class Book{
public int code;
public string genre;
public string author;
public string synopsis;
}
然后,我有一個方法, List<Book> myList
包含一些書籍,我想填充一個bookCodes列表,它應該與Book的屬性代碼類型相同。 我想不要更改BookCodes List<int> myBookCodes
列表的聲明,如果有一天code
屬性從int
更改為long
或Guid
,例如。
我嘗試過諸如此類的東西
var myBookCodes = new List<typeof(Books.code)>
但我收到“預期類型”錯誤。
我也試過使用反射,但我也有錯誤:
System.Reflection.PropertyInfo bookCodeProperty = typeof(Book).GetProperty("code");
Type bookCodeType = bookCodeProperty.PropertyType;
var myBookCodes = new List <>(bookCodeType)
但在這種情況下,編譯器會抱怨“bookCodeType是一個變量,但它像一個類型一樣使用”。
有沒有辦法做到這一點?
這很容易......您只需預測列表並為您處理類型:
List<Book> myList ...
var codesList = myList.Select(b => b.code).ToList();
如果有一天代碼屬性從int更改為long或Guid
然后代碼仍然有效,現在是新類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.