C#控制台输出进度和百分比的实例代码

下面我将为你提供“C#控制台输出进度和百分比的实例代码”的完整攻略。

1. 实现思路

在C#中,我们可以通过控制台输出一些信息来显示进度和百分比。一般情况下,我们需要用到以下几个关键步骤:

  1. 获取总的任务量
  2. 对任务进行遍历或者处理,并计算完成进度
  3. 输出进度和百分比信息

2. 实例代码1

下面我将演示一个简单的示例代码,其中我们通过遍历一个集合来计算进度和百分比,并输出相应的信息。

List<int> lst = new List<int>() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int total = lst.Count;
int progress = 0;

foreach(int i in lst)
{
    // 处理任务
    Console.WriteLine("当前处理:{0}", i);
    progress++;

    // 计算进度和百分比
    int percent = progress * 100 / total;

    // 输出进度和百分比
    Console.CursorLeft = 0;
    Console.Write("进度:{0}%({1}/{2})", percent, progress, total);
    Thread.Sleep(500); // 等待500毫秒,模拟任务处理时间
}

Console.WriteLine("\n处理完成");

在这个代码中,我们首先定义了一个List类型的变量lst来存储需要处理的任务,然后通过Count属性获取到lst中元素的总数total,然后通过遍历lst来处理任务,并逐步计算完成的进度和百分比,最后通过Console.WriteLine方法输出相应的信息,其中通过Console.CursorLeft方法将控制台光标置于当前行首,避免信息输出溢出。

3. 实例代码2

下面,我将给你展示一个更加实际的示例代码,这个示例代码通过读取一个大文件来模拟处理任务,并输出进度和百分比信息。

string filePath = @"D:\test.txt";
FileInfo fileInfo = new FileInfo(filePath);
int total = (int)(fileInfo.Length / 1024); // 计算文件大小,单位为KB
int progress = 0;

using (StreamReader sr = new StreamReader(filePath))
{
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        // 处理任务
        progress += Encoding.Default.GetBytes(line.Trim()).Length / 1024;
        Console.CursorLeft = 0;

        // 计算进度和百分比
        int percent = progress * 100 / total;

        // 输出进度和百分比
        Console.Write("处理进度:{0}%({1}/{2}KB)", percent, progress, total);
    }
}

Console.WriteLine("\n处理完成");

在这个示例代码中,我们通过FileInfo类获取到指定文件的大小,并将其单位转换为KB,然后通过StreamReader类逐行读取文件的内容,并通过Encoding.Default.GetBytes方法获取到当前读取行的大小,并计算出总的完成进度,最后通过Console.WriteLine方法输出相应的信息。在代码中,我们通过\n字符插入一个换行符来换行输出信息。

希望这些示例代码可以帮助你更好的理解C#中控制台输出进度和百分比的实现方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#控制台输出进度和百分比的实例代码 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • asp.net 打印控件使用方法

    标题:ASP.NET打印控件使用方法 在ASP.NET开发过程中,打印控件是一个非常重要的组件。他可以方便用户进行在线的打印。本文将详细讲解ASP.NET中打印控件的使用方法。 打印控件引用 要使用ASP.NET中的打印控件,需要在页面中引用”System.Drawing.dll”和”System.Drawing.Printing.dll”这两个命名空间。 …

    C# 2023年6月3日
    00
  • C#中foreach语句使用break暂停遍历的方法

    当我们使用 foreach 遍历一个集合时,可能有时候需要在集合中某些条件满足时暂停遍历,这时我们可以使用关键字 break 来实现。下面我们来介绍一下 C# 中 foreach 语句使用 break 暂停遍历的方法。 1. 使用 break 暂停遍历 在 foreach 循环中使用 break 关键字可以在满足某些条件时停止循环,即跳出循环。 例如,我们需…

    C# 2023年6月7日
    00
  • C#的自定义语法糖的使用详解

    C#的自定义语法糖的使用详解 什么是自定义语法糖? 自定义语法糖是指一种用于简化特定代码块的特殊语法。在C#中,通过定义类似于函数的“扩展方法”或者特殊的属性,可以提供更加便捷、易读的代码实现方式。 如何使用自定义语法糖? 通过编写自己的扩展方法或者属性,可以使用自定义的语法糖。以下是具体的实现步骤。 定义扩展方法 通过以下代码定义一个简单的扩展方法,用于在…

    C# 2023年6月6日
    00
  • c# Base64编码和图片的互相转换代码

    下面是关于“c# Base64编码和图片的互相转换代码”的完整攻略: Base64编码 Base64编码是将二进制数据通过64个可打印字符来表示的一种编码方式。在C#中,我们可以使用Convert.ToBase64String()方法将一个byte数组进行Base64编码,方法原型如下: public static string ToBase64String…

    C# 2023年6月3日
    00
  • MVC HtmlHelper扩展类(PagingHelper)实现分页功能

    下面就为你详细介绍如何使用MVC HtmlHelper扩展类(PagingHelper)实现分页功能。 1. 什么是MVC HtmlHelper扩展类 在MVC开发中,HtmlHelper是负责生成HTML标签的对象,它可以帮助我们快速地生成表单、文本框、下拉框等HTML控件。而MVC HtmlHelper扩展类则是对HtmlHelper进行扩展,使其能够完…

    C# 2023年5月31日
    00
  • C# 事件的设计与使用深入理解

    C# 事件的设计与使用深入理解 1. 什么是C#事件 在C#中,事件是一种方法,这个方法是用来通知外部程序有某个特定的操作已经发生,以便订阅该事件的程序或方法可以做出相应的响应。事件是C#程序中基于委托的重要机制。 2. C#事件的设计 C#事件的设计包含两个主要部分: 2.1 事件发送者(Publisher) 事件发送者是指负责触发事件的对象,它需要满足以…

    C# 2023年5月31日
    00
  • C# WPF 建立无边框(标题栏)的登录窗口的示例

    下面是C#WPF建立无边框(标题栏)的登录窗口的完整攻略,包含两条示例。 1. 在XAML中设置窗口样式 我们可以在XAML文件中设置窗口的样式。首先,我们需要设置窗口的ResizeMode属性为NoResize,这将禁用窗口的缩放功能。接着,我们可以设置窗口Chrome样式为None,这将清除窗口的默认边框,而且我们需要手动添加窗口的标题栏和关闭按钮。 &…

    C# 2023年5月15日
    00
  • C# StringBuilder.Insert()方法: 在 StringBuilder 对象的指定位置插入一个字符串

    StringBuilder.Insert() 方法用于在指定索引位置插入指定的字符串或字符。它的语法如下: public StringBuilder Insert(int index, string value); public StringBuilder Insert(int index, char value); 其中,第一个参数 index 表示要在哪…

    C# 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部