苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6829|回复: 0

[教程] 【分布式系统框架教程】-怎么样使用静态集合

[复制链接]
发表于 2014-11-28 13:01:07 | 显示全部楼层 |阅读模式
本帖最后由 songwenqi 于 2014-11-28 13:06 编辑

【分布式系统框架教程】-怎么样使用静态集合

导读部分



1.【分布式系统框架】教程目录帖http://www.sufeinet.com/thread-10624-1-1.html

教程部分


静态集合,顾名思义,就是使用了static这个关键字,由于使用静态集合,在程序运行的时候就已经实例化,所以在读取上是极其方便和快速的。
下面以Gender.cs类为例:
[C#] 纯文本查看 复制代码
 public class Gender
    {
        public static Dictionary<int, Item> Dict
        {
            get { return dict; }
        }
        private static Dictionary<int, Item> dict = new Dictionary<int, Item>();

        static Gender()
        {
            dict.Add(1, new Item { ID = 1, Name = "男", EName = "Male" });
            dict.Add(2, new Item { ID = 2, Name = "女", EName = "Female" });
        }

        public static Item GetItem(int id)
        {
            Item item;
            if (dict.TryGetValue(id, out item))
            {
                return item;
            }
            return new Item { ID = id, Name = null };
        }
    }

Item.cs类

[C#] 纯文本查看 复制代码
public class Item
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string EName { get; set; }
        public Dictionary<int, Item> Children { get; set; }
        public Item Parent { get; set; }

        public List<string > DominList { get; set; }

        public void AddChild(Item child)
        {
            Children.Add(child.ID, child);
            child.Parent = this;
        }

        public override string ToString()
        {
            var str = "ID:" + ID;

            if (!string.IsNullOrWhiteSpace(Name))
            {
                str += ", Name:\"" + Name + "\"";
            }
            if (!string.IsNullOrWhiteSpace(EName))
            {
                str += ", EName:\"" + EName + "\"";
            }
            if (Children != null && Children.Count > 0)
            {
                str += ", Children:" + Children.Count;
            }
            return str;
        }
    }
前端在提取时可以使用:
[C#] 纯文本查看 复制代码
List<Item> GenderList = Gender.Dict.Values.ToList();
 GetOptions(ddlGender, GenderList);
public void GetOptions(HtmlSelect select,List<Item> list)
        {
            foreach (Item item in list)
            {
                select.Items.Add(new ListItem(item.Name, item.ID.ToString()));
            }
           
        }
这样就可以得到性别静态集合的数据,这样就可以很轻易的初始化下拉控件了,
其他对应的星座、民族等静态集合也是如此,很简单的就实现了查询。
效果图:
QQ截图20141128130725.png QQ截图20141128125851.png
下面再介绍一下如何使用:
在UserInfo类
[C#] 纯文本查看 复制代码
/// <summary>
    /// 用户基类
    /// </summary>
    public class UserInfo 
    {/// <summary>
        /// 用户性别
        /// </summary>
        public int Sex { get; set; }
        /// <summary>
        /// 获取用户性别汉字
        /// </summary>
        /// <returns>汉字男或者女</returns>
        public string GetSex()
        {
            return Gender.GetItem(Sex).Name;
        }
}
对了,就是这么简单,就可以在对象中很方便的提取用户的性别汉字,其他对应的民族、星座类的静态集合方法是一样的,当然这里我所列举的例子是最简单的一种使用,也许看不出它的优势,但是在省市区的静态集合中它的亮点就会一点点被展示出来,大家可以购买源码研究,那么静态集合的使用就介绍到这,分布式框架教程,到此也算告一段落,大家有什么问题的可以留言,只要我能解决的,我会一一回复的,谢谢了。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-25 15:16

© 2014-2021

快速回复 返回顶部 返回列表