I do a function that find duplicate integers and store and utput number of them as they were arrays. I Create list called "Hit" for excluding operation for repetitive number. If I once have find all dupclicates for number I do not need do it again. But "Hit" List does not work. It gives me out of range error. For ex: I have array int[] in_number = {1, 2, 2, 4, 5, 6, 6}; Without "Hit" It would give me. I already do it. It works.
0
1 2
1 2
3
4
5 6
5 6
Output
With "Hit" I try to do (it does not work)
0
1 2
3
4
5 6
But I wanna (best way)
1 2
5 6
Here is code:
namespace arrow
{
class Program
{
static void Main(string[] args)
{
int Min = 0;
int Max = 10;
int[] in_number = new int[100];
Random randNum = new Random();
for (int i = 0; i < in_number.Length; i++)
{
in_number[i] = randNum.Next(Min, Max);
}
duplicate_number_List (in_number);
}
static void dupnumlist (int[] in_number) // Find duplicate numbers
{
List<List<int>> duplicate_pair = new List<List<int>>();
List<int> Hit = new List<int>();
for (int i = 1; i < in_number.Length; i++)
{
List<int> SubList = new List<int>();
foreach (int number in Hit)
{
if (number == in_number[i]) // Will match once
{
i++; // go to next iteration; passing unnecessary
}
}
for (int j = 0; j < in_number.Length; j++)
{
if (in_number[j]==in_number[i])
{
SubList.Add(j);
Hit.Add(in_number[i]);
}
}
duplicate_pair.Add(SubList);
}
foreach (var sublist in duplicate_pair)
{
foreach (var value in sublist)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
foreach (var value in Hit)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
}
}
I don`t wanna use built-in functions