2012-12-05 3 views
0

나는 이것으로 분명히 뭔가를 놓치고 있습니다.Foreach 변수 오류

List<string> stringList = new List<string>(); 

내가 다음 몇 가지 데이터를 작성하십시오 :

foreach (List<string> results in stringList) 

를하지만 오류는 "System.Generic.Collections.List<string>를 입력 유형 string에서 변환 할 수 없습니다"라고 주장 .. 나는 다음이 하지만 두 유형 모두 List<string>이므로 연결이 끊어지는 위치는 어디입니까? 나는 틀림없이 분명히 잘못하고있는 무언가가 있어야 할 것이라고 확신하지만, 내 삶에 대해서는 그것을 발견 할 수 없다.

답변

11

귀하의 foreach해야한다 :

foreach(string s in stringList).

코드에서 목록의 문자열 대신 stringList에있는 문자열 목록을 확인합니다.

+0

아, 그렇습니다. 그 당시에 그 중 하나 일뿐입니다. 나는 그것이 마음이 무언가 겉으로는 명백한 것일 것이라고 생각했다. .. 고마워! – wjhguitarman

+0

문제 없습니다. 우리는 모두 거기에있었습니다. – MyCodeSucks

+3

더 나은 아직 문자열 대신 var 사용 : foreach (var result in stringList) – Roast

3

A를위한-각 반복하면 항목을 한 번에 하나씩 제공하므로 유형은 string하지 List<string>해야한다 : 당신은 C#에서 foreach 루프를 사용하면

foreach (string result in stringList) 
3

, 당신은 컬렉션을 반복하는 해당 컬렉션의 단일 값을 사용하여 반복적으로 작업을 수행 할 수 있습니다. 따라서 일반 컬렉션 유형의 경우 루프의 foreach 루프에서 개별 항목 유형을 원하게됩니다.

List<string> stringList = new List<string>(); 
foreach (string stringItem in stringList) 
{ 
    // do something 
} 
3

하면 foreach이 목록을 통해, 당신은 목록의 요소를 열거하는 경우.

foreach (string s in stringList) 
3

stringList 유형 List<string>이다 : 당신이 할 필요가 있으므로 stringList은 문자열이 포함되어 있습니다.

즉, 목록 stringList의 모든 요소는 string이 될 것입니다. foreach (element in stringList)을 수행 할 때 요소는 string이 될 것으로 예상됩니다.

가장 좋은 방법은 foreach 내의 varList<string>으로 바꾸는 것입니다. foreach 문에 항상 var을 사용하면 올바른 유형 (이 경우 List<string> 대신에 string이 될 것입니다)이 자동으로 고려되므로 요소가 어떤 유형인지 파악하는 데 신경 쓸 필요가 없습니다.