簡體   English   中英

創建與類屬性相同類型的List

[英]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更改為longGuid ,例如。

我嘗試過諸如此類的東西

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.

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