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

我正在将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); 

尝试

 foreach(var file in files) 

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

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

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

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

这就是你缺少var和string

试试这个

  foreach (var file in files) foreach (string file in files) 
 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); 

你应该看一下foreach语法。

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

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

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