2017-04-26 59 views
0

這裏是我的情況下,比較互換使用LINQ每個值的兩個列表在C#

ListA "1", "2", "3" 
ListB "2", "1", "3" 

如果利斯塔==數組listB,=>自利斯塔值在數組listB應該返回true。

ListA "1", "2", "3" 
ListB "1", "2", "3", "4" 

=>應該由於4數組listB返回false不在利斯塔。

有人可以幫忙嗎?

+0

嘗試使用,而不是列出 – Valentin

+0

HashSet的什麼都要如果LISTA「1」,「2」,「3」和LISTB「2」,「1」,「3」,「3」發生?或者你擔心這種情況? – KSib

+0

我認爲你是對的@Sinatr。我提出的解決方案已經在那裏使用sequenceequal和orderby。 – KSib

回答

3

您需要使用Except然後Any

var result = !ListB.Except(ListA).Any(); 
+0

這將工作,假設沒有重複的值在ListB中顯示。 – KSib

+0

@Ksib:重複也可以正常工作。說'ListB'有一個額外的3,仍然結果返回'true'。 –

+0

這不是你的問題,我是澄清cgsabari,這是好的,如果他不介意重複。如果他不介意重複,那麼這不起作用。實際上,就像他剛纔評論的那樣,這看起來對他的要求不起作用 – KSib

2

如果列表中包含唯一的值,你可以使用HashSetSetEquals方法

new HashSet(listA).SetEquals(new HashSet(listB));