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条数据:

部分南宫姓氏数据:

专业表:

@陈卧龙的博客

相关文章
|
1月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
1月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
1月前
|
存储 C# 数据库
C# 生成唯一ID,有哪些方法?
【2月更文挑战第12天】
150 0
|
3月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
3月前
|
安全 C# 开发者
C#中的默认接口方法:接口演化的新篇章
【1月更文挑战第11天】本文探讨了C# 8.0中引入的默认接口方法,这一特性允许在接口中定义具有默认实现的方法。文章介绍了默认接口方法的语法、使用场景,以及它们如何影响接口的设计和实现,同时讨论了默认接口方法带来的好处和潜在的陷阱。
|
4月前
|
缓存 C#
C# 操作路径(Path)类方法的使用与解析运行实例
C# 操作路径(Path)类方法的使用与解析运行实例
|
3月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
41 1
|
4月前
|
XML 开发框架 .NET
C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。
80 0
|
1月前
|
C#
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
|
1月前
|
开发框架 .NET C#
C#学习相关系列之Linq常用方法---排序(一)
C#学习相关系列之Linq常用方法---排序(一)