C# 随机生成姓名的方法

简介: 没什么好说的,因为用的上,所以作此记录:代码如下:public class indexModel { private object O = new object(); public List Xing = new List() {"赵", "钱", ...

没什么好说的,因为用的上,所以作此记录:

代码如下:

public class indexModel
    {
        private object O = new object();

        public List<string> Xing = new List<string>() {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "羿", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "宿", "", "怀", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "寿", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "广", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "", "", "", "", "", "", "", "", "", "",
        "万俟", "司马", "上官", "欧阳", "夏侯", "诸葛", "闻人", "东方", "赫连", "皇甫", "尉迟", "公羊",
        "澹台", "公冶", "宗政", "濮阳", "淳于", "单于", "太叔", "申屠", "公孙", "仲孙", "轩辕", "令狐",
        "锺离", "宇文", "长孙", "慕容", "鲜于", "闾丘", "司徒", "司空", "丌官", "司寇", "子车", "微生",
        "颛孙", "端木", "巫马", "公西", "漆雕", "乐正", "壤驷", "公良", "拓拔", "夹谷", "宰父", "谷梁",
        "段干", "百里", "东郭", "南门", "呼延", "羊舌", "梁丘", "左丘", "东门", "西门", "南宫"};

        string _lastNameMan = "刚伟勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘";
        

        string _lastNameWoMan = "秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝鱼晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽墨";


        public indexModel()
        {
            List<string> NameArray = GetManName();//生成的男性 女性 姓名个数为:151*501
            int C = NameArray.Count;//75651
            Parallel.ForEach(NameArray, (item,pls,i) =>
           {

           });
        }


        //public List<string> GetManName()
        //{
        //    Stopwatch sw = new Stopwatch();
        //    sw.Start();
        //    List<string> NameArray = new List<string>();
        //    int XingLen = Xing.Count;//501个姓
        //    char[] ManChar = _lastNameMan.ToCharArray();//151的男士名
        //    char[] WoManChar = _lastNameWoMan.ToCharArray();//151个女士名
        //    int ManNameLen = ManChar.Length;//151的男士名
        //    int WoManNameLen = WoManChar.Length;//151个女士名
        //    //
        //    Parallel.ForEach(Xing, (item) =>
        //    {
        //        Parallel.ForEach(ManChar, (charItem) => 
        //        {
        //            lock (O)
        //            {
        //                NameArray.Add(item + charItem.ToString());
        //            }
        //        });
        //    });
        //    sw.Stop();
        //    TimeSpan ts2 = sw.Elapsed;
        //    Console.WriteLine("Parallel.ForEach总共花费{0}ms.", ts2.TotalMilliseconds);//31   27  72
        //    return NameArray;
        //}

        public List<string> GetManName()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            List<string> NameArray = new List<string>();
            int XingLen = Xing.Count;//501个姓
            char[] ManChar = _lastNameMan.ToCharArray();//151的男士名
            char[] WoManChar = _lastNameWoMan.ToCharArray();//151个女士名
            int ManNameLen = ManChar.Length;//151的男士名
            int WoManNameLen = WoManChar.Length;//151个女士名
            //
            foreach (var item in Xing)
            {
                foreach (var Ming in ManChar)
                {
                    NameArray.Add(item + Ming);
                }
            }
            foreach (var item in Xing)
            {
                foreach (var Ming in WoManChar)
                {
                    NameArray.Add(item + Ming);
                }
            }
            sw.Stop();
            TimeSpan ts2 = sw.Elapsed;
            Console.WriteLine("Parallel.ForEach总共花费{0}ms.", ts2.TotalMilliseconds);
            return NameArray;
        }
    }
View Code

 尝试将生成的学生姓名插入数据库,并动态生成学生学号:

public indexModel()
        {
            List<string> NameArray = GetManName();
            int Total = NameArray.Count;
            int TotalLen = Total.ToString().Length;

            for (int i = 0; i < NameArray.Count;i++)
            {
                Model.AddTime = DateTime.Now;
                Model.StuName = NameArray[i];
                Model.deptNum = "0813091";
                int Len = i.ToString().Length;
                string ling = string.Empty;
                for (int j = 0; j < TotalLen - Len; j++)
                {
                    ling += "0";
                }
                Model.StuNum = Model.deptNum + ling + i;
                if (i < TotalLen / 2)
                {
                    Model.StuSex = "";
                }
                else
                {

                    Model.StuSex = "";
                }
                db.AddStudent(Model);
            }
        }
View Code

其中数据表结构为:

create table Student
(
Id int identity(1,1) not null,
StuNum varchar(20) primary key,
deptNum varchar(20) FOREIGN KEY (deptNum) REFERENCES Dept (deptNum), 
StuName nvarchar(10),--
StuSex nvarchar(2) default(''),
AddTime datetime default(getdate()),
)

 这样就会生成15W条数据:

部分南宫姓氏数据:

专业表:

@陈卧龙的博客

相关文章
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
2月前
|
存储 C# 数据库
C# 生成唯一ID,有哪些方法?
【2月更文挑战第12天】
372 0
|
5天前
|
数据采集 数据可视化 测试技术
C#生成Selenium测试报告:实用方法与技巧
在C#中使用Selenium进行自动化测试时,结合代理IP和ExtentReports能增强测试安全性和报告质量。安装必备工具如Selenium WebDriver、NUnit和ExtentReports。在测试设置中,配置代理(如亿牛云爬虫代理)以隐藏IP,通过ChromeOptions定制UserAgent,并添加Cookie。测试代码示例展示了如何打开网页、执行搜索并生成详细的测试报告。使用ExtentReports可创建可视化测试结果,便于团队分析。
C#生成Selenium测试报告:实用方法与技巧
|
6天前
|
C#
技术经验分享:C#DUID的用法及取得整数的几个方法
技术经验分享:C#DUID的用法及取得整数的几个方法
11 1
|
10天前
|
C#
蓝易云 - C#将异步改成同步方法
注意:虽然这样可以将异步方法转为同步,但在实际开发中,我们通常推荐使用异步方法,因为它可以提高应用程序的响应性和并发性。将异步方法转为同步可能会导致死锁或性能问题。
10 2
|
5天前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
|
2月前
|
存储 数据采集 API
C# GetField 方法应用实例
C# GetField 方法应用实例
|
2月前
|
JSON 安全 API
C# GetMethod 方法应用实例
C# GetMethod 方法应用实例
|
2月前
|
数据采集 前端开发 数据挖掘
Fizzler库+C#:从微博抓取热点的最简单方法
本文介绍如何使用Fizzler库和C#构建微博热点信息爬虫。通过Fizzler的CSS选择器定位关键信息,提取热点标题和排名,实现微博内容的智能挖掘。示例代码展示单线程和多线程采集方法,并涉及代理IP使用。
Fizzler库+C#:从微博抓取热点的最简单方法