List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局
1.List GroupBy 用法
var _roomProducts = homesingProducts.GroupBy(t => t.RoomName);
RoomedProducts temp = new RoomedProducts();
foreach (var item in _roomProducts)
{
roomNames.Add(item.Key); temp = new RoomedProducts();
temp.RoomName = item.Key;
temp.Products = new List<TempProductInfo>();
temp.Products.AddRange(item); roomedProducts.Add(temp);
}
2.枚举类配合反射使用(避免到处出现 order.state == 50 order.statedesc =="已付款" 等等带有常量的代码)
public enum DesignOrderState
{ /// <summary>
/// 待付款
/// </summary>
[Description("待付款")]
WaitPaying = , /// <summary>
/// 已付款
/// </summary>
[Description("已付款")]
Paid = , /// <summary>
/// 设计中
/// </summary>
[Description("设计中")]
Designing = , /// <summary>
/// 已交付
/// </summary>
[Description("已交付")]
Completed = , } /// <summary>
/// 根据类名获取所有public属性名和特性Description
/// </summary>
/// <param name="className">类名</param>
/// <returns>Dictionary<属性名,Description></returns>
public static Dictionary<string, string> ReflectFiledsNameByClassName(string className)
{
Dictionary<string, string> result = new Dictionary<string, string>();
Type t = Type.GetType(className);
PropertyInfo[] properties = t.GetProperties();
string attr = "";
foreach (var item in properties)
{
foreach (Attribute _attr in Attribute.GetCustomAttributes(item))
{
if (_attr.GetType() == typeof(DescriptionAttribute))
{
attr = ((DescriptionAttribute)_attr).Description;
}
}
result.Add(item.Name, attr);
attr = "";
}
return result;
} /// <summary>
/// 获取枚举类的字段名及值
/// </summary>
/// <param name="type"> typeof(枚举类) </param>
/// <returns></returns>
public static Dictionary<string, int> ReflectEnumFiledAndValues(Type type)
{
Dictionary<string, int> result = new Dictionary<string, int>(); FieldInfo[] properties = type.GetFields();
foreach (var item in properties)
{
try
{
result.Add(item.Name, (int)(Enum.Parse(type, item.Name)));// 得到的第一个属性是 value_ 暂时还不知道为什么
}
catch (Exception)
{ }
}
return result; } /// <summary>
/// 根据枚举类的字段名获取特性Description中的中文描述信息
/// </summary>
/// <param name="className">枚举类名 示:SoftOrderState</param>
/// <param name="filedName">枚举类字段名 示:(SoftOrderState)30 </param>
/// <returns></returns>
public static string ReflectFiledsNameByEnumClassName(string className, string filedName)
{
string result = "";
Type t = Type.GetType(className);
FieldInfo[] properties = t.GetFields();
int length = properties.Length;
for (int i = ; i < length; i++)
{
if (properties[i].Name == filedName)
{
DescriptionAttribute attr = Attribute.GetCustomAttribute(properties[i],
typeof(DescriptionAttribute), false) as DescriptionAttribute;
result = attr.Description;
break;
}
} return result;
} Dictionary<string, string> fileds = new Dictionary<string, string>();
Dictionary<string, int> filedValues = new Dictionary<string, int>(); ReflectFiledsNameByEnumClassName(className, SoftOrderState.Sending.ToString())); //属性 找 Description ReflectFiledsNameByEnumClassName(className,((SoftOrderState)).ToString())); // 值 找 Description (int)((Enum.Parse(typeof(SoftOrderState), "Sending")))); // 属性 to 值 fileds = ReflectFiledsNameByClassName(className); //类名 找 属性名及对应的Description filedValues = ReflectEnumFiledAndValues(typeof(SoftOrderState));// 返回 所有字段和值的键值对
public enum EnumWorkTypes
{
家居住宅,
酒店,
别墅住宅,
办公室,
酒吧KTV
} var types = "";
var typs = typeof(EnumWorkTypes).GetFields(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
foreach (var fi in typs)
types += "<li value=" + fi.Name + ">" + fi.Name + "</li>"; Response.Write(types);
3.正则备忘
var password = $("#password").val();
if (!(/^[\w\d.,\?]{5,15}$/).test(password)) {
alert("密码不能输入特殊字符并且长度为5到15");
return;
} // 正则用 ^ 跟 $ 包起来表示匹配本身 (要限制长度必须包起来) ,如果不包就表示字符串中匹配到5-15长度的一段字符,条件就为真
// 手机号码 var mobile = $("#mobile").val();
if (!(/^1[34578]\d{9}$/.test(mobile))) {
alert('手机号码格式错误!');
return ;
}
// 生成随机字符串 function generateAccountAndPwd() {
var x = 1000000;
var y = 1;
// var rand1 = String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0)) + String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0)) + parseInt(Math.random() * (x - y + 1) + y) + String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0)) + parseInt(Math.random() * (x - y + 1) + y) + String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0)); var rand2 = String.fromCharCode(Math.floor(Math.random() * 26) + "a".charCodeAt(0)) + parseInt(Math.random() * (x - y + 1) + y) + String.fromCharCode(Math.floor(Math.random() * 26) + "a".charCodeAt(0));
$("#password").val(rand2); };
4.搜索配下拉布局
List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局的更多相关文章
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- 简学Python第七章__class面向对象高级用法与反射
Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群 群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...
- Java Enum用法详解
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
- Java反射的常见用法
反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法. 1 查看属性的修饰符.类型和名 ...
- Java Reflection 反射基础
反射基础: package reflection; /** * Created by : Infaraway * DATE : 2017/3/2 * Time : 23:06 * Funtion : ...
- 代替Reflection(反射)的一些方法
Reflection(反射)是深入学习.Net必须掌握的技能之一.最初学Reflection的时候,的确是被惊住了,原来还可以这样.只要给你一个Assembly, 你就能获取到其中所有的类型,根据类型 ...
- 代替Reflection(反射)的一些方法(转)
作者:JustRun 林肯: http://www.cnblogs.com/JustRun1983/p/3830764.html 代替Reflection(反射)的一些方法(转) 2014-07-08 ...
- Android-PullToRefresh下拉刷新库基本用法
How:(使用) 转自:http://blog.csdn.net/hantangsongming/article/details/42490277 PullToRefresh是一套实现非常好的下拉刷新 ...
- 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。
子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...
随机推荐
- HMM隐马尔科夫算法(Hidden Markov Algorithm)初探
1. HMM背景 0x1:概率模型 - 用概率分布的方式抽象事物的规律 机器学习最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测. 概率模型(p ...
- [物理学与PDEs]第5章习题5 超弹性材料中客观性假设的贮能函数表达
设超弹性材料的贮能函数 $\hat W$ 满足 (4. 19) 式, 证明由它决定的 Cauchy 应力张量 ${\bf T}$ 满足各向同性假设 (4. 7) 式. 证明: 若贮能函数 $W$ 满足 ...
- Xss Bypass备忘录
Xss Bypass备忘录 技术要发展,免不了风波. 也许这些攻攻防防会更好的促进技术的发展也说不定 就让这一次次的爆破换来将来更精练的技术的无比的宁静吧 我们静观其变吧! 缅怀当初那份最纯真Hack ...
- 小程序 TabBar 定制
使用微信小程序开发时,用到了其 API - tabBar,设置如下(详细的内容可以参考官网 api): "tabBar": { "color": "# ...
- github及git使用
一.github及git Github用于托管和协作项目的网站,git是通常与github一起使用的版本控制系统.Github上有上百万个开源项目,在使用git的时候每个开发人员都在他们的计算机上有一 ...
- 6-12 varchar和char 枚举类型enum 集合set
1 字符类型char和varchar #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和varchar括号内的参 ...
- java处理含有中文的字符串.
1. 问题描述: 原始数据是以行为单位的, 每行固定长度931个字节, 汉字占2个字节, 按照字典描述,共有96个字典,只有第32个字典为中文地址, 所以需要单独处理. 由于项目设计保密,故删除敏感数 ...
- Leetcode#70. Climbing Stairs(爬楼梯)
题目描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...
- [转] Python 字符编码判断
转自:http://www.cnblogs.com/dkblog/archive/2011/03/02/1980644.html 法一: isinstance(s, str) 用来判断是否为一般字符串 ...
- MySql存储过程及函数
存储过程和函数类似于Java中的方法. ⒈存储过程 一组预先编译好的sql语句的集合,理解成批处理语句. 好处: ①提高代码的重用性 ②简化操作 ③减少了编译次数并且减少了和数据库服务器的连接次数,提 ...