2016-06-24 6 views
1

내가 문자열 배열 다음 한 foreach 루프에서 여러 값을 건너 뛰고 나는 첫 번째 값을 건너 뛸 수 있지만, 어떻게 1 값과 마지막 값을 모두 건너 뛸 수 있습니다

string[] words = ... 

foreach (String W in words.Skip(1)) 
{ 
     ... 
} 

foreach 루프에서 문자열로 그 받고 있어요?

+0

'StartsWIth/EndsWith' 내 첫 번째 선택 ... – MethodMan

답변

2

foreach (string w in words.Skip(1).Take(words.length-2)) 
{ 
    ... 
} 
시도

충분한 단어가 있는지 확인하기 위해 몇 가지 테스트를 먼저 수행하는 것이 가장 좋습니다!

6

사용이

words.Skip(1).Take(words.Length-2) 

그것은 -2 그래서 당신은 당신이 끝에서 건너 뛸는 생략 한 하나 더하기 하나를 포함되지 않습니다

1
int count = 0; 
string[] words = { }; 

foreach (string w in words) 
{ 
     if(count == 0 || count == (words.Length - 1)){ 
     continue; 
     } 
     //Your code goes here 
     count++; 
} 

foreach 루프를 사용해야하는 경우에 적합합니다.

+1

것이다 당신은 words.Length'확인해야 사용할 수 있습니다 - 1' – dotctor

11

이 배열은 바로 ...

for (int i = 1; i < words.Length - 1; i++) 
{ 
    string W = words[i]; 
    //... 
} 
+2

LOL, 마침내 하나의 정상적인 대답 +1 –

+0

나는 이것이 최선의 대답이어야한다고 동의하는 동안, 나는 그가 linq에서 이것을하는 방법을 묻고 있다고 생각한다. 어쨌든, 여기 내 upvote –

+0

'foreach'는 질문 제목에 언급 된 간다,하지만 우리는 "각"나는 그냥 무시할 줄 알았는데, 이제 당신은 내가 linq 태그를 참조 그것을 언급했다. –

1

당신은 ArraySegment

var clipped = new ArraySegment<String>(words, 1, words.Length-2); 

foreach (String W in clipped) 
{ 
     ... 
}