在一个或多个页面中列出数组项,并等待用户输入每一页

时间:2019-01-16 15:54:57

标签: c# arrays pagination console-application cursor-position

当我写所有数组内容时,我试图在C#控制台中实现下一页效果。很好,它可以正常工作,但是,为了使其正常工作,我使用了异常(我并不为此感到骄傲)。我正在寻找一种无例外的方法。

using语句(我不知道该代码中使用了哪些语句):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Text.RegularExpressions;

这部分基本上是关于从文件夹中获取某些文件的名称。这只是为了提供更多信息,可以跳过:

string scLoc = AppDomain.CurrentDomain.BaseDirectory + @"shortcuts";
string[] directory = Directory.GetFiles(scLoc);

foreach (var filed in directory)
{
    System.IO.File.Move(filed, filed.ToLowerInvariant());
}

string[] file = Directory.GetFiles(scLoc).Select(System.IO.Path.GetFileNameWithoutExtension).ToArray();

foreach (string dir in directory)
{
}

这是有问题的部分:

List<string> prgList = new List<string>();
foreach (string fdir in file)
{
    prgList.Add(fdir);
}
string[] prgListArr = prgList.ToArray();
UInt16 fileAmoutToReach = 0;
UInt16 prgName = 0;
while (fileAmoutToReach <= file.Length) //gotta fix this
{
    try
    {
        for (UInt16 i = Convert.ToUInt16(Console.CursorTop); i < Convert.ToUInt16(Console.WindowHeight - 1); i = Convert.ToUInt16(Console.CursorTop))
        {
            Console.WriteLine(prgListArr[prgName]);
            prgName++;
            fileAmoutToReach++;
        }
    }
    catch (Exception)
    {
        Console.Write("Press any key to continue");
        inputedKey = Console.ReadKey(true);
        break;
    }
    Console.Write("Press any key to resume the listing");
    inputedKey = Console.ReadKey(true);
    if (inputedKey.Key == ConsoleKey.Escape)
    {
        break;
    }
    Console.Clear();
}

0 个答案:

没有答案