logo

  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
    • C#教程
    • C#实战
  • 隐私政策
  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
  • 隐私政策
您正在使用IE浏览器,部分内容可能无法显示,建议您换用更新的浏览器,请单击下载Chrome浏览器
显示屏过小,本网站无法正常显示
你处于离线状态,正在显示缓存网页
首页/ 分类:C#教程/ 【C#教程】深入探究Guid

【C#教程】深入探究Guid

2020年7月23日 14:06:10 吕舒君 0 百度已收录 849 次浏览

手写方法生成Guid

在C#的System类中已经为我们预定义了结构体Guid用于生成Guid,我们还可以通过手写方法来实现生成Guid

public static string NewGuid()
  {
      string[] a = { "A", "B", "C", "D", "E", "F", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
      StringBuilder stringBuilder = new StringBuilder();
      var r = new Random();
      Parallel.For(0, 32, 
          i => 
          {
              stringBuilder.Append(a[r.Next(0, 15)]);
          });
      return stringBuilder.ToString();
  }

效率比较

系统方法和手写代码各执行10000次,比较效率。



【C#教程】停表-StopWatch


介绍 命名空间: System.Diagnostics Assemblies: System.Runtime.Extensions.dll, System.dll, netstandard.dll 提供一组方法和属性,可用于准确地测量运行时间。 public class Stopwatch 继承 O...

using System;
  using System.Collections.Generic;
  using System.Diagnostics;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace GUID
  {
      class Program
      {
          public static string NewGuid()
          {
              string[] a = { "A", "B", "C", "D", "E", "F", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
              StringBuilder stringBuilder = new StringBuilder(100);
              var r = new Random();
              Parallel.For(0, 32, 
                  i => 
                  {
                      stringBuilder.Append(a[r.Next(0, 15)]);
                  });
              return stringBuilder.ToString();
          }
          static void Main(string[] args)
          {
              Stopwatch sw = new Stopwatch();
              sw.Start();
              for (int i = 1; i <= 10000; i++)
              {
                  var guid = Guid.NewGuid();
                  guid.ToString("N");
              }
              sw.Stop();
              Console.WriteLine("系统方法总共花费{0}ms.", sw.ElapsedMilliseconds);
  
              sw.Reset();
              sw.Start();
              for (int i = 1; i <= 10000; i++)
              {
                  NewGuid();
              }
              sw.Stop();
              Console.WriteLine("手写方法总共花费{0}ms.", sw.ElapsedMilliseconds);
  
              Console.ReadKey();
          }
      }
  }

最终结果

手写方法完败 😈

系统方法总共花费4ms.
  手写方法总共花费106ms.
作者头像
吕舒君
就是本站站长(^_−)☆
提示
你已经点赞过了
上一篇文章缩略图
【C#教程】GUID
« 上一篇文章
下一篇文章缩略图
【资源分享】GifCam一个好用的录屏软件
下一篇文章 »
原创声明
版权声明: 本文由作者吕舒君于2020年7月23日 14:06:10原创发表.
转载请务必取得作者同意, 并附带本页面地址: https://cszj.wang/1271.html
查看作者 吕舒君 的所有文章
发表评论
account_circle
email
email
评论区
共0条回复
暂无评论,说说你的看法吧!
侧边栏
文章目录
  • 手写方法生成Guid
  • 效率比较
  • 最终结果
最近文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
文章缩略图
【Windows】如何关闭Windows的自动更新
引子 Windows的自动更新的问题已经困扰了一些用户很久了
文章缩略图
【前端教程】如何创建一个属于自己的在线思维导图网站
什么是思维导图 思维导图,英文是The Mind Map,又
文章缩略图
【信奥】Java vs C++
题面 题目描述 Java和C++两种语言的辩手都可以相互争论
文章缩略图
【信奥】收集树叶
题面 描述 给出一棵二叉树,收集并移除所有叶子,重复执行,直
最近文章
您尚未登录
底部推荐
随机文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
站点统计
文章总数:35篇
评论总数:127条
分类总数:9个
标签总数:81个
网站运行:1995天
最后更新:2022-4-4
友情链接
搜索站 文件管理 洛谷 WordPress大学

吕舒君的博客,一个传递知识的网站!

前往本站
吕舒君的博客
一个传递知识的网站

版权所有·吕舒君(2016-2022)

酷博客(V4.1.0). Theme By 吕舒君. 网站已使用SSL加密 本页面进行了 52 次请求在 0.344 秒内加载完成, 使用了 11.82MB 的内存。