Я хочу создать список, содержащий все значения, которые имеет свойство в списке определенного класса, и добавить эти значения в другой список, тип которого совпадает со свойством класса.
Предположим, у меня естькласс 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 - это переменная, но она используется как тип».
Есть ли способ сделать это?