解决  将具有匹配属性的对象添加到列表

已加入
2020年12月26日
留言内容
7
编程经验
Beginner
我有一个对象列表,每个对象都具有从构造器构建的各种属性,如下所示:

1608986084219.png


我试图形成一个列表列表,以便在“ LevelNumber”匹配的地方创建一个列表,该列表将根据按编号排序的唯一“ LevelNumber”添加到列表中。我认为下面的内容必须接近我的需求:

清单<Job> 工作List = new 清单<Job>();
工作List.Add(新Job("Owner", null, 0, "ProjectBriefCreation", 1, "ProjectOwner", 5, 2, 2));
工作List.Add(新Job("Carpentry", "GeneralContractor", 2, "Drywalling", 1, "Carpenter", 5, 2, 2));
工作List.Add(新Job("抹灰和绘画", "GeneralContractor", 2, "Plastering", 2, "Plasterer", 6, 2, 2));
工作List.Add(新Job("抹灰和绘画", "GeneralContractor", 2, "Painting", 3, "Painter", 8, 2, 2));
工作List.Add(新Job("GeneralContractor", "Owner", 1, "ProjectManagement", 1, "ContractsManager", 7, 2, 2));
工作List.Add(新Job("DesignContractor", "Owner", 1, "DesignManagement", 1, "设计合同经理", 7, 2, 2));
工作List.Add(新Job("建筑实践", "DesignContractor", 1, "BuildingDesign", 1, "LeadArchitect", 7, 2, 2));
工作List.Add(新Job("结构工程实践", "DesignContractor", 1, "StructuralDesign", 1, "StructuralEngineer", 7, 2, 2));

清单<List<Job>> jobsPerLevelList = new 清单<List<Job>>();
清单<int> distinctLevelNumber = new 清单<int>();
uniqueLevelNumber.AddRange(JobList.Select(x =>x.LevelNumber).Distinct()。ToList());
foreach(variableLevelNumber中的var Level)
{
如果(Job.LevelNumber。)
{
jobsPerLevelList.Add(new 清单<Job>(Job.LevelNumber));
}

}

我似乎不太能完成/工作。任何意见,将不胜感激。
 
Last edited:
已加入
2020年12月26日
留言内容
7
编程经验
Beginner
谢谢约翰。我没有使用Link的经验。如果有时间显示示例的外观,则代码如下所示:
C#:
public class 工作
    {
        public Guid Record { get; set; }
        public string 工作Name { get; set; }
        public string 工作Executor { get; set; }
        public string OrganisationType { get; set; }
        public string ContractingOrganisationType { get; set; }
        public string CustomInput { get; set; }
        public 整型 StepNumber { get; set; }
        public string StepName { get; set; }
        public 整型 StepCount { get; set; }
        public 整型 CustomInputCount { get; set; }
        public 整型 CustomOutputCount { get; set; }
        public 整型 LevelNumber { get; set; }
        public 整型 工作NumberOnLevel { get; set; }
        public string GenericInputType { get; set; }
        public string GenericInputDescription { get; set; }
        public string CustomOutput { get; set; }

        public 工作(string organisationType, string contractingOrganisationType, 整型 levelNumber, string jobName, 整型 jobNumberOnLevel, string jobExecutor, 整型 stepCount, 整型 customInputCount, 整型 customOutputCount)
        {
            OrganisationType = organisationType;
            ContractingOrganisationType = contractingOrganisationType;
            LevelNumber = levelNumber;
            工作Name = jobName;
            工作NumberOnLevel = jobNumberOnLevel;
            工作Executor = jobExecutor;
            StepCount = stepCount;
            CustomInputCount = customInputCount;
            CustomOutputCount = customOutputCount;
        }
谢谢,
马特
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
但是您确实有使用LINQ的经验。您在帖子#1中介绍的代码中使用了它:
工作List.Select(x => x.LevelNumber).Distinct().ToList()
 
最佳 底部