2016-12-09 122 views
-3

我想compare里面的元素ListC#。我需要检查列表中是否存在相同的数据。任何人都可以帮助我吗?比较c中列表中的元素#

+1

任何试过这么远? –

+2

'bool contains = list.Any(item => condition(item));' –

+0

你想得到一份关于是否有重复项目或清除重复项目的报告吗? http://stackoverflow.com/questions/489258/linqs-distinct-on-a-particular-property – ColinM

回答

0

你可以试试这个,例如:

var collection = new List<double>(new double[] { 10, 20, 11, 10, 20, 44 }); 
var info = collection.GroupBy(e => e).ToDictionary(e => e.Key, e => e.Count()); 

这里info包含collection双值作为key和数目,此数字为value

这种结构可以与任何类型的List元素一起使用。

-1

你可以使用LINQ extention方法

这里是LINQ比较列表的例子:

list<string> arr1 = new list<string>(){ "A", "b", "C," }; 
    list<string> arr2 = new list<string>(){ "A", "b", "C," }; 

比较上述阵列与SequentialEqual()方法

bool result = arr3.SequentialEqual(arr2); 

布尔结果将包含真实,因为两个列表中的项目都是相同的

希望这有助于

-1

如果你只是想知道是否有列表中的多个项目有您可以使用此功能相同的值..

public bool HasSameData<T>(List<T> myList) 
{ 
    return myList.Distinct().Count() != myList.Count(); 
} 

注意,这将与任何类型的工作。

void Main() 
{ 
    var myList = new List<int> {1,2,3,4,5,6,7,8,9}; 
    var myList2 = new List<int> {1,1,3,4,5,6,7,8,9}; 

    Console.WriteLine(HasSameData(myList)); 
    Console.WriteLine(HasSameData(myList2)); 

    var myList3 = new List<String> {"hello","world","foo","bar"}; 
    var myList4 = new List<String> {"hello","foo","foo","bar"}; 

    Console.WriteLine(HasSameData(myList3)); 
    Console.WriteLine(HasSameData(myList4)); 

    Console.ReadLine(); 
} 

OUTPUT:

False 
True 
False 
True