2012-01-08 62 views
-2

鉴于例如C#阵列(重复的元素)

int[] x = {2,5,5}; 

如何找到如果重复元件的阵列。请一些最简单的方法。

+2

你能弄清楚你想要什么?你想知道所有重复元素还是检查某个重复元素?另外,2,5,2会算作重复还是连续重复? – 2012-01-08 20:33:30

+0

是的,我在迭代时陷入困境。 – 2012-01-08 20:33:39

+2

“元素重复”是什么意思?重复是否需要连续? – CodesInChaos 2012-01-08 20:34:21

回答

3

由于重复不必是连续的:

x.Length!=x.Distinct().Count() 
+0

应该是'Array.length - 2'以避免来自'arr [i + 1]'的OOB异常? – jprofitt 2012-01-08 20:45:33

+0

@jprofitt否-1是正确的。我用'<'不是'<=' – CodesInChaos 2012-01-08 20:46:41

+0

@CodeInChaos,你刚刚从我的代码中移除了混沌。它充满了,如果没有,现在只是一条线。 – 2012-01-08 20:50:19

1

我知道它已经已经回答了,但也许这会感兴趣:

bool isRepeated = false; 
for (int i = 0; i < x.Length; i++) 
{ 
    for (int j = i + 1; j < x.Length; j++) 
    { 
     if (x[i] == x[j]) 
     { 
      isRepeated = true; 
      break; 
     } 
    } 
    if (isRepeated) break; 
} 
Text = isRepeated.ToString(); 
+0

谢谢ispiro,的确对我的笔记本有很大的帮助和补充! :) – 2012-01-10 04:19:31