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 )

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);



Popular Posts