首页 > 解决方案 > 如何确保列表中对象的自定义属性复制到 C# 中的新列表?

问题描述

我正在尝试将列表的子集复制到新列表,但似乎无法复制自定义类属性。

例如,下面我有一个带有 int、bool 和 Basement 属性的 House 类。地下室属性是由一个双。当我获得 List AllHouses 属性的房屋列表时,所有属性都已填满。但是,当我将 AllHouses 列表复制到 SubjectHouses 列表(使用 lambda 语句仅选择 IsSubjectHouse == true 的房屋)时,MLSNumber 和 IsSubjectHouse 属性将复制,但 List 中的每个对象都有一个 null HouseBasement 属性。

看起来应该很简单,但是我尝试了很多事情并以多种方式进行了搜索,但似乎无法弄清楚我做错了什么。任何指针将不胜感激。下面是我正在使用的代码的精简版本,希望能为我上面写的内容提供一些上下文。

    public class House
    {
        public int MLSNumber { get; set; }
        public bool IsSubjectHouse { get; set; }
        public Basement HouseBasement { get; set; }
    }

    public class Basement
    {
        public double SqFt { get; set; }
    }

    public ViewSubjectHouseViewModel()
    {
        //This list has all properties
        List<House> AllHouses = GetHouseList();

        //This list does not bring over the Basement property
        List<House> SubjectHouses = AllHouses.FindAll(house => house.IsSubjectHouse == true);
    }

标签: c#oop

解决方案


推荐阅读