到目前为止我制作了这段代码,但它没有编号:
int add = files.Length;
DirectoryInfo di = new DirectoryInfo("c:\\Windows");
FileInfo[] fiArr = di.GetFiles();
Console.WriteLine("The directory {0} contains the following files:", di.Name);
Console.WriteLine();
foreach (FileInfo f in fiArr) {
Console.WriteLine(" {0} ({1}) ", f.Name, f.Length);
}
Console.WriteLine();
Console.ReadLine();
PressEnter();
Console.Clear();
我希望输出如下:
文件:
C:\Windows
1. explorer.exe (2871808)
2. ODBC.ini (376)
3. winhlp32.exe (9728)
...
答案 0 :(得分:2)
试
int i = 1;
foreach (FileInfo f in fiArr)
{
Console.WriteLine("{0}. {1} ({2}) ",i , f.Name, f.Length);
i++;
}
答案 1 :(得分:1)
添加计数变量。您可能希望将其命名为i
,因为这是它的通用名称。在循环外初始化它。在您的情况下,使用1
初始化它将是最有意义的。
然后,在循环中,在WriteLine()
调用中,将新占位符添加到格式字符串的开头,并将count变量作为格式字符串后面的第一个参数插入。调用后,使用++
运算符递增变量。
您也可以使用0
外部初始化它,并在每个循环开始时递增它。无论你喜欢什么。
答案 2 :(得分:1)
使用LINQ
DirectoryInfo di = new DirectoryInfo(@"c:\Windows");
FileInfo[] fiArr = di.GetFiles();
Console.WriteLine("The directory {0} contains the following files: {1}"
, di.Name
, String.Join(
" ",
fiArr.Select(
(x, index) => String.Format(
"{0}. {1} ({2})"
, index+1
, x.Name
, x.Length
)
)
)
);
Console.ReadKey();
Console.Clear();
答案 3 :(得分:0)
使用for
循环代替foreach
:
for (int i = 0; i < fiArr.Length; i++)
{
Console.WriteLine(i + 1 + ". " + fiArr[i].Name + " (" + ffiArr[i].Length + ")");
// ...