2016-12-09 152 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