2011-06-08 88 views
0

我一直gettig此錯誤:無法轉換類型 '字符串' 到「System.Collections.Generic.IList <string>

"Cannot convert type 'string' to 'System.Collections.Generic.IList"

這裏是我的程序:

class Program 
{ 


    static void Main(string[] args) 
    { 


     List<string> list = new List<string>(); 
     list.Add("a"); 
     list.Add("b"); 
     list.Add("c"); 
     list.Add("d"); 



     foreach (IList<string> name in list) 
     { 
      Console.WriteLine(String.Format("{{{0} {1} {2}}}", list[0], list[1], list[2])); 
+0

您需要輸出什麼? – Shevek 2011-06-08 13:55:31

+0

你的foreach循環中還有其他的東西嗎?你省略了關閉'}'。 – Shevek 2011-06-08 13:57:12

回答

2

更改foreach (IList<string> name in list)foreach (string name in list)

foreach聲明中的第一個標記是您正在枚舉的集合的元素的類型。

您也可以使用var關鍵字,讓編譯過程中,編譯器斷定類型(同時還獲得了name變量的靜態類型的好處):foreach (var name in list)

0

更改您的循環

foreach(string name in list) 
{ 
    Console.WriteLine(name); 
} 
0

你應該這樣做嗎?

foreach (string name in list) 
0

你的問題是,list包含stringsIList<string>

要麼改變for循環:

foreach (string name in list) 
    { 
     Console.WriteLine(name); 
    } 

或丟失foreach和剛剛離開的Console.Writeline在那裏

4

你有一個列表,並且你已經添加了4個字符串。該列表是一個字符串列表,而不是一個字符串列表。

我懷疑你的意思(因爲你正在做一些.Format

List<string> list = new List<string>(); 
// 4 x Add 
Console.WriteLine(String.Format("{{{0} {1} {2}}}", list.ToArray())); 

另外,如果你的意思是在每個前3個字符(這不會爲您的樣本數據的工作,因爲每一個長度爲1)的字符串:

foreach(string name in list) { 
    Console.WriteLine(
     string.Format("{{{0} {1} {2}}}", name[0], name[1], name[2])); 
} 
1
在每個循環

除去IList<String>並使用String

foreach(String name in list) 
{ 
    Console.WriteLine(String.Format("{{{0} {1} {2}}}", list[0], list[1], list[2])); 
} 
相關問題