さて、あなたは何も組み込みたくないと言ったので、すべてを最初からやりましょう。
これを行うには(私が知っている)2つの方法があります。1つは複雑さO(n ^ 2)で、もう1つは複雑さO(n + n * log(n))です。2つ目は高速ですが、1つ目は簡単です。
より遅い(しかしより簡単な)解決策:O(n ^ 2)
int[] iArray = {1,2,3,2,3,4,3};
List<int> unique = new List<int>(iArray.Length);
for(int i = 0; i<iArray.length; i++)
{
bool found = false;
for(int prev=0; prev<i; prev++)
{
if(iArray[prev] == iArray[i])
{
found = true;
break;
}
}
if(!found)
{
unique.Add(iArray[i]);
}
}
iArray = unique.ToArray();
for(int i=0; i<iArray.Length; i++)
{
Console.WriteLine(iArray[i]);
}
より高速な(しかしより複雑な)ソリューション:O(n + n * log(n))
int[] iArray = {1,2,3,2,3,4,3};
List<int> unique = new List<int>(iArray.Length);
// Sort the array here. Use your favorite algorithm. Sorting is so widely
// covered elsewhere that I will avoid typing it here. Complexity should
// be O(n*log(n))
if( iArray.Length > 0)
{
unique.Add(iArray[0]);
}
for(int i=1; i<iArray.length; i++)
{
if(iArray[i] != iArray[i-1])
{
unique.Add(iArray[i]);
}
}
iArray = unique.ToArray();
for(int i=0; i<iArray.Length; i++)
{
Console.WriteLine(iArray[i]);
}