gpt4 book ai didi

c# - 创建一个与类属性具有相同类型的列表

转载 作者:太空狗 更新时间:2023-10-30 00:22:45 26 4
gpt4 key购买 nike

我想创建一个列表,获取某个属性在某个类的列表中具有的所有值,并将这些值添加到另一个列表,该列表的类型与类属性相同。

假设我有 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();

if some day the code property is changed from int to long or Guid

然后代码仍然有效,现在是新类型。

关于c# - 创建一个与类属性具有相同类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441816/

26 4 0
文章推荐: python - Python 的 numpy.exp 函数中的溢出错误
文章推荐: python - 导入错误 : No module named 'queue' while running my app freezed with cx_freeze
文章推荐: python - 将 pyspark.sql.dataframe.DataFrame 类型 Dataframe 转换为 Dictionary
文章推荐: c# - new object[] {} 与 Array.Empty()