2013-04-02 12 views
0

나는 처음 두 요소를 목록 A에서 목록 B로 복사하지 않고 '전송'하려고했습니다.하나의 목록에서 다른 목록에 추가

처음에는 목록 A에 4 개의 int 값이 있습니다. 결국 List A와 B 모두 2 개의 int 값을 갖기를 원합니다.

나는 이런 식으로 뭔가를 시도하고있다 :

int a = 1; 
int b = 2; 
int c = 3; 
int d = 4; 

TestA.Add(a); 
TestA.Add(b); 
TestA.Add(c); 
TestA.Add(d); 

for (int i=0; i<2; i++) 
{ 
    TestB.AddRange(TestA[i]); 
} 

은 내가 IEnummerable 변환 오류가 발생합니다. 나는 아주 천진난 만하게하고 있다고 확신한다. 나는 여기서 도움을 청한다. 감사.

+0

당신은 어디에서'TestB'를 선언합니까? 모든 관련 코드를 추가하면 도움이 될 것입니다. 어떻게'TestA와 TestB'가 정의되어 있는지 보여주십시오 ..'TestA [i],'뒤에','가 왜 있습니까? – MethodMan

답변

3

간단한 Take/Skip의 조합에 어떤 문제가 있습니까?

TestB = TestA.Take(2).ToList(); 
TestA = TestA.Skip(2).ToList(); 

Enumerable.Take는 - 컬렉션의 처음부터 N 요소 걸린다.

Enumerable.Skip - 컬렉션 시작 부분에서 N 개의 요소를 건너 뛰고 다른 모든 요소는 건너 뜁니다.

+0

트릭을 해 주셔서 감사합니다! 나는 이것에 대해 인터넷에서 온갖 것을 찾았는데 왜 내가 이것에 관해서 아무것도 찾지 못했는지 궁금하다. 또한 궁금 해서요, 왜 '건너 뛰기'라는 메서드가 있습니까? 그것은 무엇을합니까? 다시 한 번 감사드립니다! – Turbosheep

+0

약간의 설명으로 답변을 업데이트했습니다. 희망이 도움이되었습니다. – MarcinJuraszek

+0

모든 도움에 감사드립니다. 하지만 나중에 A에 몇 가지 요소를 다시 추가하면 어떻게 될까요? 처음 두 요소를 건너 뛰어도됩니까? 그게 나쁠거야. 또는 Skip()이 처음 두 개를 건너 뛰고, 나머지를 가져 와서 전체 목록을 재 배열하여 값만 가져 오도록한다는 의미입니까? – Turbosheep