在csharp中的foreach语句ERROR中都需要类型和标识符

时间:2013-03-01 19:55:52

标签: c# vb.net

我正在将VB.net转换为C#以获取此代码:

Dim files() As String
files = Directory.GetFiles("E:\\text", "*.txt") 
Dim filename As String
Dim file As String
For Each file In files
filename = Path.GetFileName(file)

我在C#中尝试了这个但是得到了错误

  

在csharp

中的foreach语句ERROR中都需要类型和标识符
string[] files;
files = Directory.GetFiles("E:\\text", "*.txt");
string[] filenameMove;
string filename;
string file;

foreach (file  in files)
  filename = Path.GetFileName(file);

4 个答案:

答案 0 :(得分:4)

尝试

foreach(var file in files)

您需要指定要循环的类型或使用var

您已经声明了一个名为file的变量。所以你必须使用不同的名字

foreach(var f in files)
{
  filename = Path.GetFileName(f);
}

(虽然你的逻辑只是在每次迭代时都覆盖了文件名,所以除非你只想要最后一个文件名,否则我不确定它的用途是什么。)

答案 1 :(得分:0)

您应该查看 foreach 语法。

  Foreach(Type varName in array)
  {
      filename = Path.GetFileName(varName);
  }

Type和数组应该是Type相同,或者您可以像这样使用var变量

  Foreach(var varName in array)
  {
      filename = Path.GetFileName(varName);
  }

答案 2 :(得分:0)

这就是你缺少var和string

试试这个

    foreach (var file  in files)


    foreach (string file  in files)

答案 3 :(得分:0)

string[] files;
files = Directory.GetFiles("E:\\text", "*.txt");
string[] filenameMove;
string filename;
//string file;

//foreach (file  in files)
  foreach (string file  in files)
  filename = Path.GetFileName(file);