本帖最后由 songwenqi 于 2014-11-28 13:06 编辑
【分布式系统框架教程】-怎么样使用静态集合
导读部分
教程部分
静态集合,顾名思义,就是使用了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()));
}
} 这样就可以得到性别静态集合的数据,这样就可以很轻易的初始化下拉控件了, 其他对应的星座、民族等静态集合也是如此,很简单的就实现了查询。 效果图:
下面再介绍一下如何使用: 在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;
}
} 对了,就是这么简单,就可以在对象中很方便的提取用户的性别汉字,其他对应的民族、星座类的静态集合方法是一样的,当然这里我所列举的例子是最简单的一种使用,也许看不出它的优势,但是在省市区的静态集合中它的亮点就会一点点被展示出来,大家可以购买源码研究,那么静态集合的使用就介绍到这,分布式框架教程,到此也算告一段落,大家有什么问题的可以留言,只要我能解决的,我会一一回复的,谢谢了。
|