当前位置:编程学习 > C#/ASP.NET >>

Ilist<T> 内容相等判断

请问各位

Object有个Equal
方法可以重载后,对自己定义的类,进行内容比较

但Ilist<T> 有没有什么方法可以直接返回其中所有的元素的内容是否相等
而不用对其中所有的元素都遍历一遍,调用其中的Equal方法呢 --------------------编程问答-------------------- 如果不遍历,怎么知道?
望高手出现 --------------------编程问答-------------------- 可用LIST,ILIST属于接口范畴,应该实现不了! --------------------编程问答-------------------- 高手的问题,关注。。。 --------------------编程问答-------------------- 继承Icompare<T> --------------------编程问答--------------------
using System;
using System.Linq;
using System.Collections.Generic;

class MyClass
{
    static bool AllEquals<T>(List<T> list)
    {
        return list.Distinct().Count() == 1 ? true : false;
    }


    static void Main(string[] args)
    {
        List<int> list1 = new List<int> { 1, 2, 3, 4, 3, 2, 1 };
        Console.WriteLine(AllEquals(list1));

        List<int> list2 = new List<int> { 2, 2, 2, 2, 2, 2, 2 };
        Console.WriteLine(AllEquals(list2));

        Console.ReadKey();
    }
}
--------------------编程问答--------------------
引用楼主 sapt2007 的回复:
请问各位

Object有个Equal
方法可以重载后,对自己定义的类,进行内容比较

但Ilist <T> 有没有什么方法可以直接返回其中所有的元素的内容是否相等
而不用对其中所有的元素都遍历一遍,调用其中的Equal方法呢

??
你干嘛关心List里的数据是不是存在相同的???
你要想存不同的数据就用Dictionary,绝对不会重复, --------------------编程问答-------------------- System.Linq是3.0的? --------------------编程问答-------------------- 回复 6楼

我是要判断, 两个List的实例的内容是否完全相同
并且,其中元素的次序也相同

如: 
List<item> A = new List<item>();
List<item> B = new List<item>();
item a = new item();
item b = new item();
item c = new item();
A.Add(a);
A.Add(b);
A.Add(c);

B.Add(a);
B.Add(b);
B.Add(c);


在上述的情况,我就认为,这两者不同 --------------------编程问答-------------------- 我在实际中解决这种问题的方法是将需要比较的List进行XML格式的序列化,然后比较序列化后的内容是否相等,但前提是你的List<item>中的item类型是可以被序列化的。 --------------------编程问答--------------------
引用 8 楼 sapt2007 的回复:
在上述的情况,我就认为,这两者不同


应该认为两者相同才是。 --------------------编程问答-------------------- 回复 10楼

实际的业务需要 认为这两者是不同的 --------------------编程问答-------------------- <a href="http://www.niuren.com">牛人论坛</a> --------------------编程问答--------------------
引用 11 楼 sapt2007 的回复:
回复 10楼

实际的业务需要 认为这两者是不同的

8楼的代码?你这业务需要显然是火星人的...
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,