2014-09-05 39 views
15

görmezden.Listesi - İki listeleri var ve her durumda farklılıklarını görmezden, onları karşılaştırmak ve farklılıkları almak istiyorum davayı

Ben iki liste arasındaki farkları almak için aşağıdaki kodu kullanmış fakat harf farklılıkları dikkate etmez.

IEnumerable<string> diff = list1.Except(list2, StringComparison.OrdinalIgnoreCase); 

ama hariç bu tür (böylece hata) bir dize vaka kontrol sahip olmak görünmüyor:

IEnumerable<string> diff = list1.Except(list2); 
List<string> differenceList = diff.ToList<string>(); 

Bu çalıştı. Umarım etrafta bir iş vardır.

+4

. Türlere dikkat edin ... –

+0

[IEqualityComparer] ile [Except] (http://msdn.microsoft.com/library/bb336390.aspx) yüküne bakın (http://msdn.microsoft.com/library/ ms132151.aspx). @JeffMercado dediği gibi, 'IEqualityComparer ' [StringComparer] altında zaten birkaç tane bulunabilir (http://msdn.microsoft.com/library/system.stringcomparer.aspx) – Corak

+0

teşekkürler :) inanamıyorum ben yapmadım StringComparer'ı denemeyin. – john

cevap

4

İşte çalıştı budur:

IEnumerable<string> differenceQuery = inputTable.Except(strArrList, StringComparer.OrdinalIgnoreCase);

Dize karşılaştırıcısı yerine karşılaştırma.

23

:) Bunu deneyin

List<string> except = list1.Except(list2, StringComparer.OrdinalIgnoreCase).ToList(); 

benim için çalıştı! Muhtemelen `StringComparer` değil` StringComparison` olmalıdır

+1

Teşekkürler. Cevabı zaten aldım ama bu daha temiz. :) – john

İlgili konular