2017-03-17 131 views
-1

在我的應用程序,我有一個像比較列表元素,如何避免重複比較?

private string[] listOfFiles = { 
    "A.txt", "B.txt", "C.txt", "D.txt" 
}; 

的文件路徑列表,我需要這些文件到列表中的所有其他文件的每一個比較,所以直接的方式將類似於

A.txt - B.txt 
A.txt - C.txt 
A.txt - D.txt 
B.txt - A.txt 
B.txt - C.txt 
B.txt - D.txt 

...等等。

正如你所看到的,這不是最優的,因爲在這個例子中,我將A.txt與B.txt進行了兩次比較,浪費了時間和資源。

如何避免這樣的重複比較?我確信有一個簡單的方法,但我沒有看到它,我的Google-fu正在讓我失望。

+0

你需要驗證的內容或只是刪除重複的文件路徑? – StfBln

+0

我實際上是比較圖像,其中,與我正在處理的圖像數量,可能需要很長時間,甚至更長的時間與所有重複。我只需要擺脫所有重複。 –

回答

1

隨着雙環你只能一次比較兩個文件名像這樣的:

for(int i = 0; i < arr.Length; i++){ 
    for(int j = i + 1; j < arr.Length; j++){ 
      // comparison 
    } 
}