【问题标题】:Comparing elements of list, how do I avoid duplicate comparisons? [duplicate]比较列表的元素,如何避免重复比较? [复制]
【发布时间】:2017-03-17 20:30:01
【问题描述】:

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

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

【问题讨论】:

  • 您需要验证内容还是只删除重复的文件路径?
  • 我实际上是在比较图像,与我正在处理的图像数量相比,这些图像可能需要很长时间,甚至更长的时间。我只需要删除所有重复项。

标签: c# duplicates compare generic-list


【解决方案1】:

使用双循环,您只能将两个文件名比较一次,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多