Learn how to remove duplicate elements in an array in C# with example.
For example, The input array contains 12, 14, 23, 12, 23, 14, 23 elements, then unique elements in the give input array is 12, 14, 23.
Input:12, 14, 23, 12, 23, 14, 23 in an array
Output: 12, 14, 23 ( only unique elements)
Algorithm
Step 1: Compare each element with next of each elements of this element.
step 2: If find duplicate element then left shit all the elements after the duplicate element up-to array size for remove duplicate one.
step 3: In this way we can remove duplicate elements from same array and manage unique elements.
Method -1
c# program on removing duplicate elements from an array
Code
class PrintUniqueElements
{
public static int printUniqueElements(int[] arr, int n)
{
// Traversing each element
// in array one by one by outer for loop.
for (int i = 0; i < n; i++)
{
// Traversing starts from next
// element of marked element by outer loop.
for (int j = i + 1; j < n; )
{
// If get same element then enter here.
if (arr[i] == arr[j])
{
// Left shifting each element from
// this duplicate element upto
// maximum size of array element.
for (int k = j; k < n - 1; k++)
{
arr[k] = arr[k + 1];
}
// Decreasing the array index by 1.
n--;
}
else
{
// If dont get any duplicate then come here and
// go to next element by inner loop.
j++;
}
}
}
// Returning the final array size
// after removing duplicate elements.
return n;
}
}
/*------------------------------------------
* USER OR CLIENT PORTION.
*
*/
public class RemoveDuplicatesFromArrayTest
{
public static void Main(String[] args) {
// Entering the size of the array.
Console.WriteLine("Please enter the size of the array");
int size;
bool flag = int.TryParse(Console.ReadLine(), out size);
if(flag==true)
{
if(size <= 0)
{
Console.WriteLine("Array size cannot be Zero or Negative");
}
}
flag = false;
// Declaring and instantiating an array.
int[] arr = new int[size];
// Entering elements in the array
Console.WriteLine("Enter the elements to store in an array");
for (int i = 0; i < size; i++)
{
flag = int.TryParse(Console.ReadLine(), out arr[i]);
if(flag==false)
{
return;
}
flag = false;
}
// Displaying the original array.
Console.WriteLine("Original Array: ");
for (int i = 0; i < arr.Length; i++) {
Console.WriteLine(arr[i]);
}
// Displaying the unique elements in the array.
Console.WriteLine("Print unique elements: ");
int newSize = PrintUniqueElements.printUniqueElements(arr, size);
for (int i = 0; i < newSize; i++) {
Console.WriteLine(arr[i]);
}
}
}
Output
Please enter the size of the array
8
Enter the elements to store in an array
5
6
7
8
5
6
7
5
Original Array:
5
6
7
8
5
6
7
5
Print unique elements:
5
6
7
8
Method -2
Code
using System;
using System.Collections.Generic;
namespace RemoveDuplicateValues_from_Array
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the size of the array");
int size;
bool flag = int.TryParse(Console.ReadLine(), out size);
if (flag == true)
{
if (size <= 0)
{
Console.WriteLine("Array size cannot be Zero or Negative");
}
}
flag = false;
int[] arr = new int[size];
Console.WriteLine("Enter the elements to store in an array");
for (int i = 0; i < size; i++)
{
flag = int.TryParse(Console.ReadLine(), out arr[i]);
if (flag == false)
{
return;
}
flag = false;
}
// Displaying the original array.
Console.WriteLine("Original Array: ");
foreach(int num in arr)
{
Console.WriteLine(num);
}
List lstarray = new List(arr);
RemoveDuplicates(ref lstarray);
// Displaying the unique elements in the array.
Console.WriteLine("Print unique elements: ");
foreach(int num in lstarray)
{
Console.WriteLine(num);
}
}
static List RemoveDuplicates(ref List arr)
{
int i = 0;
//logic to remove the duplicate values.
for (int j = i + 1; j < arr.Count; )
{
if (arr[i] == arr[j])
{
arr.Remove(arr[i]);
}
else
{
j++;
}
}
return arr;
}
}
}