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

哑光F.

成员
加入
12月26日,2020年12月26日
消息
7
编程经验
Beginner
我有福彩12选5走势图对象列表,每个对象都有各种属性,由构造函数构建,如下所示:

1608986084219.png.


我正在尝试形成福彩12选5走势图列表列表,以便在“levelnumber”匹配的情况下,它将创建福彩12选5走势图列表,根据数字订购的唯一“levelnumber”将添加到列表中。我认为以下是什么必须在接近我所需要的地方:

列表<Job> JobList = new List<Job>();
JobList.Add(new Job("Owner", null, 0, "ProjectBriefCreation", 1, "ProjectOwner", 5, 2, 2));
JobList.Add(new Job("Carpentry", "GeneralContractor", 2, "Drywalling", 1, "Carpenter", 5, 2, 2));
JobList.Add(new Job("Plasteringandpainting.", "GeneralContractor", 2, "Plastering", 2, "Plasterer", 6, 2, 2));
JobList.Add(new Job("Plasteringandpainting.", "GeneralContractor", 2, "Painting", 3, "Painter", 8, 2, 2));
JobList.Add(new Job("GeneralContractor", "Owner", 1, "ProjectManagement", 1, "ContractsManager", 7, 2, 2));
JobList.Add(new Job("DesignContractor", "Owner", 1, "DesignManagement", 1, "DesignContractsManager.", 7, 2, 2));
JobList.Add(new Job("建筑实践", "DesignContractor", 1, "BuildingDesign", 1, "LeadArchitect", 7, 2, 2));
JobList.Add(new Job("结构性工程前言", "DesignContractor", 1, "StructuralDesign", 1, "StructuralEngineer", 7, 2, 2));

List<List<Job>>Jobsperlevellist =新列表<List<Job>>();
List<int>Distintlevelnumber =新列表<int>();
distinctlevelnumber.addrange(Joblist.Select(X =>x.levelnumber).distintic()。托尔特());
Foreach(Var Level在Distinctlevelnumber中)
{
如果(Job.Levelnumber。)
{
jobsperlevellist.add(新列表<Job>(Job.LevelNumber));
}

}

我似乎无法完成/工作。任何意见,将不胜感激。
 
Last edited:

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,159
地点
挪威
编程经验
10+
LINQ分组似乎应该研究。如果您已发布代码而不是图像,则更容易举例。

邮寄代码如下:
InsertCode.png.
 
解决方案

哑光F.

成员
加入
12月26日,2020年12月26日
消息
7
编程经验
Beginner
谢谢约翰。我没有使用链接的任何经验。如果您有一分钟展示福彩12选5走势图例子,则代码如下:
C#:
public class Job
    {
        public Guid Record { get; set; }
        public string JobName { get; set; }
        public string JobExecutor { get; set; }
        public string OrganisationType { get; set; }
        public string ContractingOrganisationType { get; set; }
        public string CustomInput { get; set; }
        public int StepNumber { get; set; }
        public string StepName { get; set; }
        public int StepCount { get; set; }
        public int CustomInputCount { get; set; }
        public int CustomOutputCount { get; set; }
        public int LevelNumber { get; set; }
        public int JobNumberOnLevel { get; set; }
        public string GenericInputType { get; set; }
        public string GenericInputDescription { get; set; }
        public string CustomOutput { get; set; }

        public Job(string organisationType, string contractingOrganisationType, int levelNumber, string jobName, int jobNumberOnLevel, string jobExecutor, int stepCount, int customInputCount, int customOutputCount)
        {
            OrganisationType = organisationType;
            ContractingOrganisationType = contractingOrganisationType;
            LevelNumber = levelNumber;
            JobName = jobName;
            JobNumberOnLevel = jobNumberOnLevel;
            JobExecutor = jobExecutor;
            StepCount = stepCount;
            CustomInputCount = customInputCount;
            CustomOutputCount = customOutputCount;
        }
谢谢,
 
最后编辑了主持人:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,892
地点
切萨皮克,va.
编程经验
10+
但是你确实有Linq的经验。您在您在第1篇文章中呈现的代码中使用它:
工作List.Select(x => x.LevelNumber).Distinct().ToList()
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,159
地点
挪威
编程经验
10+
这是对的,尝试用orderby和groupby来做这一点。
 
最佳 底部