C#如何用保留发删除数组中相同元素,不是用for循环移动删除

如何用保留发删除数组中相同元素
不是用下面这种方法
#include<stdio.h>
int main()
{
int i,k,j,a[5],n;1
for(i=0;i<5;i++)
scanf("%d",&a[i]);
n=5;
for(i=1;i<n;i++)
{
for(k=0;k<i;k++)
if(a[i]==a[k])
{
for(j=i;j<n;j++)
a[j]=a[j+1];
n--;i--;
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
}

纯数组?不是list?