微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较两个成对的列表,并建立没有重复的新列表

如何解决比较两个成对的列表,并建立没有重复的新列表

我有两个清单。首先是PROJECTNUMBER,其次是PROJECTMANAGER。数据就是“ PROJECTNUMBER PROJECTMANAGER”

让我们假设列表1:

1234 John
3214 Jack

和清单2:

1234 John
3214 Adam

在我需要的新列表3中

3214 Jack Adam

我有两个问题:

  1. 我当前的代码陷入无限循环,提供ProjectNumbers :)我当前的解决方案出了什么问题?
  2. 如何在Linq查询中实际达到预期结果?在Linq查询中将两个人都作为输出?我需要对Concat使用反向连接还是有更简单的解决方案?

这是我当前的代码

    static void Main(string[] args)
    {
        MFiles.SearchDeliveryProjectsInMFiles();

        var ProjectsFromMFiles = MFiles.DeliveryProjectList.ToList();

        var ProjectsFromLiinos = MainProcess.GetMyJoinedResult().ToList();

        var output = (from ps1 in ProjectsFromLiinos
                      from ps2 in ProjectsFromMFiles
                      where !(ps1.HENKILONIMI == ps2.ProjectManager && ps1.TILAUSNRO == ps2.ProjectNumber)
                      select ps2.ProjectNumber).ToList();

        foreach (var ProjectNumber in output)
        {
            Console.WriteLine(ProjectNumber);
        }

        Console.ReadKey();
    }

解决方法

这实际上是基础数学

列表1 U列表2-列表1 n列表2 将为您提供所需的信息

如此基本的演示

IList<string> strList1 = new List<string>() { 
    "John","Jack"
};

IList<string> strList2 = new List<string>() {
    "John","Adam"
};


var res = strList1.Union(strList2).Except(strList1.Intersect(strList2));
res.Dump();

对于您的情况,您需要编写IEqualityComparer<JoinedFandS>以便比较两个两个类。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。