迭代集合中所有唯一对的简单方法

Noa*_*Gal 4 c# collections

我有HashSet包含多个元素的 c# 3 对象。我想检查每一对之间的某些内容,而不重复 [(a,b)=(b,a)],也不将元素与自身配对。
我考虑过切换到某种列表,这样我就可以将每个元素与其所有后续元素配对。是否可以选择用一般的无序的方法来做类似的事情Collection?或者IQuaryable

Hen*_*man 5

为此,当您可以使用索引访问它们时会更容易,尽管存在 ElementAt<> 扩展,但首先使用 .ToList() 可能会更快。

当您有可寻址列表时:

for (int i = 0; i < list.Count-1; i++)
  for (int j = i+1; j < list.Count; j++)
     Foo(list[i], list[j]);
Run Code Online (Sandbox Code Playgroud)