c#随机生成中文姓名

  为什么要自己写这个生成器呢?大家应该都有过为测试数据发愁的时候,我就是出于这样的原因。

      尽管本次代码很少,但是还会有后续的生成器分享出来。

      我代码底子还不是很好,希望各位同道能够发表意见,同是也欢迎大家提意见。

  上码欣赏,走着!

  

 1 public class GetChineseNames
 2     {
 3         string strLastName = "赵 钱 孙 李    周 吴 郑 王    冯    陈    褚    卫    蒋    沈    韩    杨    朱    秦    尤    许 "
 4 + "何 吕    施    张    孔    曹    严    华    金    魏    陶    姜    戚    谢    邹    喻    柏    水    窦    章 "
 5 + "云 苏    潘    葛    奚    范    彭    郎    鲁    韦    昌    马    苗    凤    花    方    俞    任    袁    柳 "
 6 + "酆 鲍    史    唐    费    廉    岑    薛    雷    贺    倪    汤    滕    殷    罗    毕    郝    邬    安    常 "
 7 + "乐 于    时    傅    皮    卞    齐    康    伍    余    元    卜    顾    孟    平    黄    和    穆    萧    尹 "
 8 + "姚 邵    湛    汪    祁    毛    禹    狄    米    贝    明    臧    计    伏    成    戴    谈    宋    茅    庞 "
 9 + "熊 纪    舒    屈    项    祝    董    粱    杜    阮    蓝    闵    席    季    麻    强    贾    路    娄    危 "
10 + "江 童    颜    郭    梅    盛    林    ***    钟    徐    邱    骆    高    夏    蔡    田    樊    胡    凌    霍 "
11 + "虞 万    支    柯    昝    管    卢    莫    经    房    裘    缪    干    解    应    宗    丁    宣    贲    邓 "
12 + "郁 单    杭    洪    包    诸    左    石    崔    吉    钮    龚    程    嵇    邢    滑    裴    陆    荣    翁 "
13 + "荀 羊    於    惠    甄    麴    家    封    芮    羿    储    靳    汲    邴    糜    松    井    段    富    巫 "
14 + "乌 焦    巴    弓    牧    隗    山    谷    车    侯    宓    蓬    全    郗    班    仰    秋    仲    伊    宫 "
15 + "宁 仇    栾    暴    甘    钭    厉    戎    祖    武    符    刘    景    詹    束    龙    叶    幸    司    韶 "
16 + "郜    黎    蓟    薄    印    宿    白    怀    蒲    邰    从    鄂    索    咸    籍    赖    卓    蔺    屠    蒙 "
17 + "池    乔    阴    欎    胥    能    苍    双    闻    莘    党    翟    谭    贡    劳    逄    姬    申    扶    堵 "
18 + "冉    宰    郦    雍    舄    璩    桑    桂    濮    牛    寿    通    边    扈    燕    冀    郏    浦    尚    农 "
19 + "温    别    庄    晏    柴    瞿    阎    充    慕    连    茹    习    宦    艾    鱼    容    向    古    易    慎 "
20 + "戈    廖    庾    终    暨    居    衡    步    都    耿    满    弘    匡    国    文    寇    广    禄    阙    东 "
21 + "殴    殳    沃    利    蔚    越    夔    隆    师    巩    厍    聂    晁    勾    敖    融    冷    訾    辛    阚 "
22 + "那    简    饶    空    曾    毋    沙    乜    养    鞠    须    丰    巢    关    蒯    相    查    後    荆    红 "
23 + "游    竺    权    逯    盖    益    桓    公    万俟    司马    上官    欧阳    夏侯    诸葛 "
24 + "闻人    东方    赫连    皇甫    尉迟    公羊    澹台    公冶    宗政    濮阳 "
25 + "淳于    单于    太叔    申屠    公孙    仲孙    轩辕    令狐    钟离    宇文 "
26 + "长孙    慕容    鲜于    闾丘    司徒    司空    亓官    司寇    仉    督    子车 "
27 + "颛孙    端木    巫马    公西    漆雕    乐正    壤驷    公良    拓跋    夹谷 "
28 + "宰父    谷梁    晋    楚    闫    法    汝    鄢    涂    钦    段干    百里    东郭    南门 "
29 + "呼延    归    海    羊舌    微生    岳    帅    缑    亢    况    后    有    琴    梁丘    左丘 "
30 + "东门    西门    商    牟    佘    佴    伯    赏    南宫    墨    哈    谯    笪    年    爱    阳    佟 "
31 + "第五    言    福";
32 
33         /// <summary>
34         /// 姓氏列表
35         /// </summary>
36         string[] arrLastName = null;
37         /// <summary>
38         /// 生成的名字列表
39         /// </summary>
40         List<string> listCnNames = new List<string>();
41         /// <summary>
42         /// 名字字符的个数
43         /// </summary>
44         Random rdCharCount = new Random();
45         /// <summary>
46         /// 姓氏在姓氏列表中的索引
47         /// </summary>
48         Random rdLastNameIndex = new Random();
49         /// <summary>
50         /// 名字的字符对应的十进制
51         /// </summary>
52         Random rdFirstName = new Random();
53 
54         public GetChineseNames()
55         {
56             arrLastName = strLastName.Replace(" ", " ")
57                 .Replace("\t", " ").Split(new char[] { ' ' });
58         }
59         /// <summary>
60         /// 随机姓名
61         /// </summary>
62         /// <returns></returns>
63         public string GetTestData()
64         {
65             string name = "";
66             //
67             name+=arrLastName[rdLastNameIndex.Next(0,arrLastName.Length-1)];
68             //
69             int iCharCount = rdCharCount.Next(1, 2);
70             for (int iCharCountIndex = 1; iCharCountIndex <= iCharCount; iCharCountIndex++)
71             {
72                 name += (char)rdFirstName.Next(16128, 36597);
73             }
74             return name;
75         }
76     }

 

posted @ 2015-10-28 22:15  又过二十  阅读(2192)  评论(0编辑  收藏  举报