int[] m_iTest = new int[5];
m_iTest[0] = 1;
m_iTest[1] = 2;
m_iTest[2] = 2;
m_iTest[3] = 4;
m_iTest[4] = 4;
위의 배열에서 중복을 제거하면 아래와 같이 됨
m_iTest[0] = 1;
m_iTest[1] = 2;
m_iTest[2] = 4;
public T[] GetDistinctValues<T>(T[] array)
{
List<T> tmp = new List<T>();
for (int i = 0; i < array.Length; i++)
{
if (tmp.Contains(array[i]))
continue;
tmp.Add(array[i]);
}
return tmp.ToArray();
}
// 사용법
m_iTest = GetDistinctValues<int>(m_iTest);






안녕하세요. 도움이 많이 되었습니다. 감사합니다.
그런데 한가지 궁금한점이 있습니다. 지금 위에 소스는 배열을 초기화하지 않고
숫자 하나하나 씩 입력을 받구요. tmp.Add(array[i]); 아래에 count++ 해서
for문을 돌리면 출력은 잘되는데요. 두번째부터 오류가 발생하네요 ㅠ
예를들어 1 1 1 2 2 입력시 1 2 출력이 되구요. count값이랑 변수 초기화하고
그다음 입력시 1 1 1-> 3개입력시 인덱스가 배열 범위를 벗어났습니다. 라고
다운이 됩니다. 무엇이 문제인지 아직 찾지를 못하고 있어요ㅠ
본문에 나오는 코드를 테스트한 파일을 첨부로 올려두었습니다. 제 코드상에는 별 문제는 없는것 같구요.. count를 어떤 이유로 넣어두셨는지는 모르겠지만 그것때문에 배열의 index를 벗어난듯합니다.. 나그네님이 작성하신 코드를 보지 못해 정확한 이유는 잘 모르겠네요.