C# 隨機生成姓名的方法


沒什么好說的,因為用的上,所以作此記錄:

代碼如下:

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條數據:

部分南宮姓氏數據:

專業表:

@陳卧龍的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM