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

yizhihongxing

下面我将为你提供“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 MVC把数据库中枚举项的数字转换成文字

    以下是“ASP.NET MVC把数据库中枚举项的数字转换成文字”的完整攻略: 什么是枚举 枚举是一种特殊的数据类型,它定义了一组命名的常量。在.NET MVC中,枚举通常用于表示状态、类型等。 ASP.NET MVC把数据库中枚举项的数字转换成文字的过程 以下ASP.NET MVC把数据库中枚举项的数字转换成文字的详细过程: 步骤1:定义枚举 首先,我们需要…

    C# 2023年5月12日
    00
  • 利用正则表达式抓取博客园列表数据

    下面我将为你详细讲解“利用正则表达式抓取博客园列表数据”的完整攻略。 步骤1:分析目标网站 在开始抓取之前,第一步是分析目标网站的数据结构和抓取规则。对于博客园的列表页面,我们可以先打开开发者工具,查看网页源代码,尝试找到包含所需数据的HTML元素。通过观察可以发现,每个博客园的列表项都包含在一个 div 元素里面,而博客标题、作者、所属分类等信息都分别包含…

    C# 2023年6月1日
    00
  • C#区分中英文按照指定长度截取字符串的方法

    下面是详细讲解 C# 区分中英文按照指定长度截取字符串的方法的完整攻略。 问题描述 在 C# 中截取字符串时,常常会遇到区分中英文的情况,因为中文字符和英文字符所占的字节大小不同,所以需要按照不同的规则进行截取。具体而言,我们需要实现这样一个功能:给定一个字符串,按照指定的长度截取,如果截取的位置恰好是中文字符,需要往前或往后截取到整个中文字符。 解决方案 …

    C# 2023年6月8日
    00
  • C#如何给PDF文件添加水印

    下面是C#如何给PDF文件添加水印的完整攻略: 1. 使用 iTextSharp 添加水印到 PDF 文件中 步骤如下: 引用 iTextSharp 的 dll 文件。 C# using iTextSharp.text; using iTextSharp.text.pdf; 读取 PDF 文件并创建 PdfStamper 对象。 C# PdfReader r…

    C# 2023年6月6日
    00
  • C#异步编程由浅入深(三)之详解Awaiter

    C#异步编程由浅入深(三)之详解Awaiter 在C#异步编程中,awai和awaiter是非常重要的概念。Awaiter是实现自定义异步操作必须实现的一个组件,相当于C#异步编程中的“接口”,而await则代表“等待”。本篇文章就来详细讲解Awaiter的用法。 Awaiter的概念 首先我们需要了解Awaiter的概念。Awaiter是异步操作的“接口”…

    C# 2023年6月6日
    00
  • .net加载失败的程序集实现重新加载

    针对“.Net加载失败的程序集实现重新加载”这个主题,我为您总结了以下完整攻略: 1. 背景介绍 在开发和运行.NET程序时,我们常会遇到程序集加载失败的情况。在这种情况下,我们可以采用重新加载程序集的方法来解决该问题。本文将介绍如何实现重新加载失败的程序集。 2. 实现步骤 步骤1:确定程序集加载失败的原因 在进行重新加载之前,我们需要先确定程序集加载失败…

    C# 2023年5月15日
    00
  • asp.net 数据库连接类代码(SQL)

    下面我就详细讲解一下“ASP.NET数据库连接类代码(SQL)”的相关攻略。 1. 数据库连接类代码概述 在Web开发中,数据库是一个非常重要的组成部分。而为了连接数据库,我们就需要使用到“数据库连接类代码”。在ASP.NET中,我们可以使用SQL Server提供的ADO.NET来连接数据库。SQL Server是Microsoft开发的一个关系型数据库管…

    C# 2023年5月31日
    00
  • 无法读取配置节 system.serviceModel 因为它缺少节声明的解决方法

    无法读取配置节system.serviceModel因为它缺少节声明的解决方法 在.NET应用程序中,system.serviceModel配置节通常用于配置WCF服务。当我们在应用程序中使用WCF服务时,有时会遇到“无法读取配置节system.serviceModel因为它缺少节声明”的错误。这个错误通常是由于缺少system.serviceModel节声…

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