如何判断两个list集合是否相等?

这个昵称已经存在了 2012-12-29 11:36:59
有两个list实体的数据.比如.

List<实体A> AList = DA.GETLIST();
List<实体B> BList = DA.GETLIST();

我该怎么去判断这两个LIST集合的数据是否一样?

下面这个方法不行
if (ListA.Contains(ListB))
{
MessageBox.Show("相等");
}
else
{
MessageBox.Show("不想等");
}
...全文
19668 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
link_jack 2013-03-14
  • 打赏
  • 举报
回复
说个很容易理解的方法。 1、先判断ListA.count是否等于ListB.count; 2、确定第1步骤相等后在判断一个集合中的所有元素是否在另外一个集合中存在。 代码如下: public bool IsEqual<T>(IList<T> ListA,IList<T> ListB){ if(ListA.Count!=ListB.Count) return false; foreach(T item in ListA){ if(!ListB.Contains(item)) return false; } return true; }
wonkju 2012-12-31
  • 打赏
  • 举报
回复
印象中觉得,系统内置提供的方法,回去找竟然没有。
Super赛亚人 2012-12-31
  • 打赏
  • 举报
回复
半年菜鸟路过,我是判断长度是否相等,再循环迭代- -
波西米亚人生 2012-12-30
  • 打赏
  • 举报
回复
if (ListA.Contains(ListB)&&ListA.Count==ListB.Count)
麟儿 2012-12-30
  • 打赏
  • 举报
回复
EnForGrass 2012-12-30
  • 打赏
  • 举报
回复
bigbaldy 2012-12-30
  • 打赏
  • 举报
回复
引用 10 楼 aaipan8 的回复:
你们说的方法都不行....我晕~
怎么可能不行。。。。。
ibmav637d 2012-12-30
  • 打赏
  • 举报
回复
看看泛型的Find或者Exists之类的,效果会更好; http://www.cnblogs.com/yuanyuan/archive/2010/06/19/1760987.html
threenewbee 2012-12-29
  • 打赏
  • 举报
回复
a.orderby(x => x).sequenceequals(b.orderby(x => x))
bigbaldy 2012-12-29
  • 打赏
  • 举报
回复
不好意思少写了个B

if (AList.Except(BList).Count() == 0 && BList.Except(AList).Count() == 0)
{
    相等
}
bigbaldy 2012-12-29
  • 打赏
  • 举报
回复
最简单易懂的办法:

if (AList.Except(List).Count() == 0 && BList.Except(AList).Count() == 0)
{
    相等
}
葡萄成熟时 2012-12-29
  • 打赏
  • 举报
回复
引用 4 楼 mjjackey 的回复:
引用 1 楼 hjywyj 的回复:if(ListA.Count()==ListB.Count()&amp;&amp;LictA.Count(t=>!ListB.Contains(t))==0) 相等 “t=>!”这是什么操作符?
对于你这个问题,我没有写过类似的代码,但是实现的话,个人认为最傻最直接办法就是遍历两个集合,如果遇到不相等的就break;返回false,当然还有别的方法,至于效率方面看经验而谈了。
葡萄成熟时 2012-12-29
  • 打赏
  • 举报
回复
引用 4 楼 mjjackey 的回复:
引用 1 楼 hjywyj 的回复:if(ListA.Count()==ListB.Count()&amp;&amp;LictA.Count(t=>!ListB.Contains(t))==0) 相等 “t=>!”这是什么操作符?
lambda表达式
Frog1228 2012-12-29
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
if(ListA.Count()==ListB.Count()&&LictA.Count(t=>!ListB.Contains(t))==0) 相等
“t=>!”这是什么操作符?
失落的神庙 2012-12-29
  • 打赏
  • 举报
回复
重载二元运算符 == !=
「已注销」 2012-12-29
  • 打赏
  • 举报
回复
循环遍历ListA中的元素是否都在ListB中 在遍历ListB中的元素是否都在ListA种 不知道这个可行不
  • 打赏
  • 举报
回复
if(ListA.Count()==ListB.Count()&&LictA.Count(t=>!ListB.Contains(t))==0) 相等
Castiel丶Luo 2012-12-29
  • 打赏
  • 举报
回复
引用 17 楼 sp1234 的回复:
要我说,给你这样的代码C# code?1return ListA.Count==ListB.Count;就鸥了。
NO 其实 对他来说 return ListA == ListB; 就够了
  • 打赏
  • 举报
回复
要我说,给你这样的代码
return ListA.Count==ListB.Count;
就鸥了。
  • 打赏
  • 举报
回复
其实我最喜欢女纸说TMD的了。
加载更多回复(6)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧