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集合 求出不同项的主要内容,如果未能解决你的问题,请参考以下文章