2011-07-28 6 views
1

는 값이 나는 배열의 세 가지 값을 먼저 제거 할 방법을 선택 제거하려면 배열 값

int[] array = {0, 0, 1, -1, -1,-1, 1, 1, 1}; 

이다있어의 배열 &를 생각해 보자 ...?

& 내 결과가 사전에 array = {-1, -1, -1, 1, 1, 1}

감사해야합니다 ...!

답변

11

당신은 배열에서 항목을 제거 할 수 없습니다 - 그것은 고정 된 크기를 갖는다.

그러나 원하는 값만 사용하여 어레이를 만들 수 있습니다. LINQ와 함께 그 쉬운 :

int[] newArray = array.Skip(3).ToArray(); 

추가하거나 값을 제거하는 수집을 존재하는 을 수정하려면, 당신은 List<T>을 대신 할 그 RemoveRange 방법 :

List<int> list = new List<int> {0, 0, 1, -1, -1,-1, 1, 1, 1}; 
list.RemoveRange(0, 3); 
+0

그것은 트릭을했는데,이게 내가 찾고 있던 .. 감사합니다. JON, –

1

당신이 편리 Linq에있어 경우에 당신이 할 수 있습니다

array = array.Skip(3).ToArray<int>(); 
+0

Skip이 'IEnumerable '을 반환하므로 컴파일되지 않습니다. – driis

+0

테스트를 마친 후 내 수정을 확인하십시오. –

4

당신은 크기를 조정할 수 없습니다 배열을 만들려면 새로운 배열을 만들어야합니다. 그것에 대해 array.Skip(3).ToArray()을 사용할 수 있습니다.

3

간단한 linq 함수를 사용하여 첫 번째 레코드를 건너 뛸 수 있습니다. ..

int[] array = { 0, 0, 1, -1, -1, -1, 1, 1, 1 }; 
int[] array2 = array.Skip(3).ToArray(); 
1

내가이 조금 오래 알고 .. 문제에 대한 목록 방식에서 솔루션입니다하지만 난 너무이 좀 물건을 알고 있어야합니다 C# 제네릭을 시작하는 사람들을 위해 생각

을 클릭를 두 번 클릭하여 윈 - 폼에 버튼을 추가하고이 코드를 히트 F5 또는 실행 버튼을 붙여

 // define array or use your existing array 
     int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 

     // lets check the number of elements in array first 
     MessageBox.Show("Array has " + array.Length.ToString() + " elements only"); 
     // creating list 
     List<int> myList = new List<int>(); 
     // assigning array to list 
     myList = array.ToList(); 

     // removing first 2 values from list 
     // first argument is the index where first item should remove 
     // second argument is how many items should remove 
     myList.RemoveRange(0, 3); 

     // testing our list 
     MessageBox.Show("List count is: "+ myList.Count.ToString()); 
     string firstItem = myList[0].ToString(); 
     MessageBox.Show("First Item if the list is :"+firstItem) 

     // now if you want you can convert MyList in to array again 
     array = myList.ToArray(); 

     // if you debug and see you will see now the number of elements in array is 7 
     MessageBox.Show("New Array has " + array.Length.ToString() + " elements only"); 

        ***Best Regards and Happy Programming***