C# 两个list集合 求出不同项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 两个list集合 求出不同项相关的知识,希望对你有一定的参考价值。

参考技术A public static List<string> CompareListRule(List<string> leftList, List<string> rightList)

var dict = new Dictionary<string, int>();
AddDict(dict, leftList);
AddDict(dict, rightList);
return dict.Where(r => r.Value == 1).Select(c => c.Key).ToList();


private static void AddDict(Dictionary<string, int> dict, List<string> list)


foreach (var ls in list)

if (dict.Keys.Contains(ls))

dict[ls]++;

else

dict.Add(ls,1);


本回答被提问者和网友采纳
参考技术B .Net 3.5或者更高版本可以这样写
Enumerable.Except( list1.Union(list2), list1.Intersect(list2) )
或者
list1.Union( list2 ).Except( list1.Intersect(list2) )

从两个List集合里找到相同部分和不同部分

/**
 * 获取两个集合里元素不同的部分
 */
public List<User> getDifferent(List<User> u1, List<User> u2) {
    //定义两个空集合
    List<User> allUsers = new ArrayList<>();
    List<User> differentUsers = new ArrayList<>();
    
    allUsers.addAll(u1);
    allUsers.addAll(u2);
    
    for (int i = 0; i < allUsers.size(); i++) {
        if (u1.contains(allUsers.get(i)) && u2.contains(allUsers.get(i))) {
            continue;
        } else {
            differentUsers.add(allUsers.get(i));
        }
    }
    
    return differentUsers;
}

以上是关于C# 两个list集合 求出不同项的主要内容,如果未能解决你的问题,请参考以下文章

C#比较两个list集合,两集合同时存在或A集合存在B集合中无

两个已排序List求交集

转载C#使用ToList()将数组快速转换为List集合

c# 两个list的交集问题!

C# 2个List集合重复数据筛选

从两个List集合里找到相同部分和不同部分