繁体   English   中英

如何比较来自两个不同类的两个列表并比较特定条件,如果它的真实存储导致第三个列表

[英]how to compare two list from two different classes and compare particular conditions if its true store result in 3rd list

共有三个列表 ProjectList、EmployeeList 和 ProjectEmployeeList..

private List<Project> ProjectList { get; set; } = new List<Project>(); // List for project
private List<Employee> EmployeeList { get; set; } = new List<Employee>();  //List for employee
private List<ProjectEmployee> ProjectEmployeeList { get; set; } = new List<ProjectEmployee>(); 
                                                       //List for Add employee to project

我想比较 ProjectList 中必须存在诸如“ProjectID”之类的条件(已经可用)

并且 ProjectEmployeeList 中的“ProjectEmployeeId”将值与 ProjectId 匹配

如果 'ProjectId==ProjectEmployeeId' 如果为真,那么它会将 ProjectEmployeeId 添加到

项目员工名单。

同样对于 EmployeeProjectId 也意味着 'ProjectId==ProjectEmployeeId' 和

'EmployeeID==EmployeeProjectId' 这两个条件都为真,那么 ProjectEmployeeId 和

EmployeeProjectId 添加到 ProjectEmployeeList

 public void AddEmployeeToProject(ProjectEmployee projectemployee) // to add employee to 
                                                                                project
    {
         ProjectBusinessLogic projectbusinessList = new ProjectBusinessLogic();//object of 
                                                                               projectlist
         EmployeeBusinessLogic employeebusinessList = new EmployeeBusinessLogic();//object of 
                                                                             employee list
if(projectbusinessList.GetProjects().Any(x => x.ProjectId == projectemployee.ProjectEmployeeId))
       // condition to check project id is already present or not
        {
            if (employeebusinessList.GetEmployees().Any(k => k.EmployeeId == projectemployee.EmployeeProjectid))
            {
                ProjectEmployeeList.Add(projectemployee); //both condition true then it will add the values
            }
        }
        }

但它没有比较列表,因此没有在 ProjectEmployeeList 中添加值..我也希望它不应该重复值..意味着不应该像这样

|项目编号=1|, |员工编号=1|

||项目编号=1|, |员工编号=1|

我必须在 List 中执行此操作,不能使用 HashSet 或其他任何东西......

使用any是否正确?

GetProjects() 和 GetEmployees() 这个方法用于从各自的类调用列表,因为列表在那里是私有的......

您必须使用 IComparable 并比较 class 并使用它。

使用此链接使用 C# 比较两个不同类型(参考类型)的列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM