zoukankan      html  css  js  c++  java
  • C# random helper class

    项目中经常需要模拟些假数据,来做测试。这个随机生成数据的helper类就应用而生:

    using System;
    using System.Text;
    using System.Windows.Media;
     
    namespace WpfApplication1.Helper
    {
        public static class RandomHelper
        {
            private static Random randomSeed = new Random();
     
            /// <summary>
            /// Generates a random string with the given length
            /// </summary>
            /// <param name="size">Size of the string</param>
            /// <param name="lowerCase">If true, generate lowercase string</param>
            /// <returns>Random string</returns>
            public static string RandomString(int size, bool lowerCase)
            {
                // StringBuilder is faster than using strings (+=)
                StringBuilder RandStr = new StringBuilder(size);
     
                // Ascii start position (65 = A / 97 = a)
                int Start = (lowerCase) ? 97 : 65;
     
                // Add random chars
                for (int i = 0; i < size; i++)
                    RandStr.Append((char)(26 * randomSeed.NextDouble() + Start));
     
                return RandStr.ToString();
            }
     
            public static int RandomInt(int min, int max)
            {
                return randomSeed.Next(min, max);
            }
     
            public static double RandomDouble()
            {
                return randomSeed.NextDouble();
            }
     
            public static double RandomNumber(int min, int max, int digits)
            {
                return Math.Round(randomSeed.Next(min, max - 1) + randomSeed.NextDouble(), digits);
            }
     
            public static bool RandomBool()
            {
                return (randomSeed.NextDouble() > 0.5);
            }
     
            public static DateTime RandomDate()
            {
                return RandomDate(new DateTime(1900, 1, 1), DateTime.Now);
            }
     
            public static DateTime RandomDate(DateTime from, DateTime to)
            {
                TimeSpan range = new TimeSpan(to.Ticks - from.Ticks);
                return from + new TimeSpan((long)(range.Ticks * randomSeed.NextDouble()));
            }
     
            public static Color RandomColor()
            {
                return Color.FromRgb((byte)randomSeed.Next(255), (byte)randomSeed.Next(255), (byte)randomSeed.Next(255));
            }
     
        }
    }

    作者:旭东
    出处:http://www.cnblogs.com/HQFZ
    关于作者:专注于微软平台项目架构、管理和企业解决方案。现主要从事WinForm、ASP.NET、WPF、WCF、等方面的项目开发、架构、管理。如有问题或建议,请不吝指教!
    本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以联系我,非常感谢。
    如果您该文觉得不错或者对你有帮助,请点下推荐,让更多的朋友看到,谢谢!

  • 相关阅读:
    MySQL优化
    MySQL 的 SQL 操作
    笔记本电脑同时使用两个网络
    top
    logrotate
    正则表达式学习总结
    HttpClient parameter 和body 传输同时进行
    Node.js背景
    前后端分离的理解
    shiro 的subject 以及Context 对象的具体的含义。
  • 原文地址:https://www.cnblogs.com/HQFZ/p/4120360.html
Copyright © 2011-2022 走看看