2014-09-05 40 views
15

我有兩個列表,我想比較它們並獲得差異,同時忽略任何情況差異。列表'除外'比較 - 忽略大小寫

我已經使用下面的代碼來獲得兩個列表之間的差異,但它不會忽略大小寫的差異。

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

我嘗試這樣做:

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

,但似乎除了不進行有那種(因此錯誤)的字符串大小寫檢查。我希望有一個工作。

+4

這應該可能是'StringComparer',而不是'StringComparison'。請注意類型... – 2014-09-05 06:27:16

+0

請參閱[Except](http://msdn.microsoft.com/library/bb336390.aspx)用[IEqualityComparer]重載(http://msdn.microsoft.com/library/zh-cn/ ms132151.aspx)。正如@JeffMercado所說,已經可以在[StringComparer](http://msdn.microsoft.com/library/system.stringcomparer.aspx) – Corak 2014-09-05 06:31:34

+0

下找到幾個'IEqualityComparer '感謝所有:)我無法相信我沒有'嘗試'StringComparer'。 – john 2014-09-05 06:33:37

回答

4

這裏是什麼工作:的

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

字符串比較器,而不是比較。

23

試試這個:)

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

爲我工作!

+1

謝謝。我已經得到了答案,但這更清潔。 :) – john 2014-09-05 08:22:53