2011-06-08 87 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])); 
} 
相关问题