比较列表元素,如何避免重复比较?

时间:2017-03-17 20:30:02

标签: c# duplicates compare generic-list

在我的应用中,我有一个文件路径列表,如

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让我失望。

1 个答案:

答案 0 :(得分:1)

使用双循环,您只能比较两个文件名,如:

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