如何比较两个List是否相同?

abcfy2 2009-04-14 03:34:54
两个List<byte>都是存储了一些字节信息值,如何才能比较这两个里面的值是否相同?
包括具体的数值和顺序。
...全文
1073 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengxincz 2011-05-09
  • 打赏
  • 举报
回复

List<byte> t1 = new List<byte>();
List<byte> t2 = new List<byte>();
return t1.SequenceEqual(t2);

Linq 有自带函数
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
UP
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
都跑了?
UP
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
不存在Except方法啊,那个是引用了哪个?
vrhero 2009-04-14
  • 打赏
  • 举报
回复
用Linq...
bool r=a.Except(b).Count()==0;
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
那个方法不太实际……
还不如直接用foreach循环来的效率高,遇到不一样的就return
qldsrx 2009-04-14
  • 打赏
  • 举报
回复
可以先考虑使用List<T>的ToArray方法来获取byte[],然后使用System.Text.Encoding.ASCII.GetString(byte[])转换成String,接着就是字符串相等的比较了。不过速度可能没有直接List<T>[i]比较快,不妨试试。
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
equals早就已经试过了,不行的,否则的话我也不回来问了。
equals在这里比较的是引用
List<byte> a=new List<byte>();
a.Add(3);
List<byte> b=new List<byte>();
b.Add(4);
b.Clear();
b.Add(3);
Console.WriteLine(a.Equals(b));
返回的是false!!!!!
Teng_s2000 2009-04-14
  • 打赏
  • 举报
回复


List<byte> t1 = new List<byte>();
List<byte> t2 = new List<byte>();
return t1.Equals(t2);
ysj52zqq 2009-04-14
  • 打赏
  • 举报
回复
up
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
KMP算法是比较字符串的啊。
我要的是比较整个List<byte>,相当于比较两个动态的byte[]
wanghui0380 2009-04-14
  • 打赏
  • 举报
回复
看样子是实际要做的事情是想查找子串

你可以试试看KMP算法
abcfy2 2009-04-14
  • 打赏
  • 举报
回复
和我一开始想的一样……
但是我是在写LZW压缩算法,我的设计是字典的每个词条都对应一个List<byte>,但是每个比较都这么写的话,词条太多的话那比较会很慢的……
想写一个类似于哈希表那样的查找,基本上一步到位,但是不太会写。
似乎List<T>.Contains()就用的是这种方法,还有HashTable<>里面也是这么存放的……
算了,先把框架写出来吧,这里以后继续完善,继续关注此贴,看有没有高人提供更好的方法。
mykelly6 2009-04-14
  • 打赏
  • 举报
回复
如果数据顺序也考虑的话,些个嵌套循环逐次比较下啊,虽然比较傻瓜的
qldsrx 2009-04-14
  • 打赏
  • 举报
回复
先比较长度,长度不同就肯定不同了,在长度相同的情况下,用循环比较每个位置的值,方心,循环也是很快的。

110,531

社区成员

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

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

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