program to removing duplicate entries, records from Array in C#.NET
Below are the four method for removing duplicate entries from an array, all does same task with the different - 2 ways using list contain (internally using linq) method, collection distinct extension method (internally using linq need .net 3.5 framework or greater) and traditional for loop also work in lower version of .net framework.
Related post - program for factorial using recursion, while and for loop in c#, Reverse number program in c#, Get max occurred character in string in c#
You can use any of them for removing duplicate elements from given array of int or string (i.e. primitive data type )
string[] inputArray = { "array", "array", "distinct", "elememnt", "remove", "distinct", "delete", "delete", "delete" };
Remove duplicate values through List Contain method
public string[]
RemoveDuplicates(string[] inputArray)
{
List<string>
distinctArray = new List<string>();
foreach (string
element in inputArray)
{
if (!distinctArray.Contains(element))
distinctArray.Add(element);
}
return distinctArray.ToArray<string>();
}Delete Duplicate elements through ArrayList Contain method
public string[]
RemoveDuplicates(string[] inputArray)
{
System.Collections.ArrayList
distinctArray = new System.Collections.ArrayList();
foreach (string
element in inputArray)
{
if (!distinctArray.Contains(element))
distinctArray.Add(element);
}
return (string[])distinctArray.ToArray(typeof(string));
}
Remove Duplicate number / record of array through Linq Distinct method
public string[]
RemoveDuplicates(string[] inputArray)
{
return inputArray.Distinct().ToArray<string>();
}
public int[]
RemoveDuplicates(int[] inputArray)
{
return inputArray.Distinct().ToArray<int>();
}
Removing Duplicate entries through traditional for loop
public string[]
RemoveDuplicates(string[] inputArray)
{
int length = inputArray.Length;
for (int i = 0; i
< length; i++)
{
for (int
j = (i + 1); j < length; )
{
if (inputArray[i] == inputArray[j])
{
for
(int k = j; k < length - 1; k++)
inputArray[k] =
inputArray[k + 1];
length--;
}
else
j++;
}
}
string[] distinctArray = new
string[length];
for (int i = 0; i
< length; i++)
distinctArray[i] = inputArray[i];
return distinctArray;
}
Calling of RemoveDuplicates method -
string[] inputArray = { "array", "array", "distinct", "elememnt", "remove", "distinct", "delete", "delete", "delete" };
string[] distinctArray =
RemoveDuplicates(inputArray);