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用法,正则,搜索下拉布局的更多相关文章

  1. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  2. 简学Python第七章__class面向对象高级用法与反射

    Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群  群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...

  3. Java Enum用法详解

    Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...

  4. Java反射的常见用法

    反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法. 1 查看属性的修饰符.类型和名 ...

  5. Java Reflection 反射基础

    反射基础: package reflection; /** * Created by : Infaraway * DATE : 2017/3/2 * Time : 23:06 * Funtion : ...

  6. 代替Reflection(反射)的一些方法

    Reflection(反射)是深入学习.Net必须掌握的技能之一.最初学Reflection的时候,的确是被惊住了,原来还可以这样.只要给你一个Assembly, 你就能获取到其中所有的类型,根据类型 ...

  7. 代替Reflection(反射)的一些方法(转)

    作者:JustRun 林肯: http://www.cnblogs.com/JustRun1983/p/3830764.html 代替Reflection(反射)的一些方法(转) 2014-07-08 ...

  8. Android-PullToRefresh下拉刷新库基本用法

    How:(使用) 转自:http://blog.csdn.net/hantangsongming/article/details/42490277 PullToRefresh是一套实现非常好的下拉刷新 ...

  9. 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。

    子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...

随机推荐

  1. Numpy 系列(八)- 广播机制

    什么是广播 我们都知道,Numpy中的基本运算(加.减.乘.除.求余等等)都是元素级别的,但是这仅仅局限于两个数组的形状相同的情况下. 可是大家又会发现,如果让一个数组加1的话,结果时整个数组的结果都 ...

  2. Breastcancer社区评论下载

    首页 某个社区 某社区的一个话题 目标:获取这个网站所有话题的所有评论相关信息 python实现 # -*- coding: utf-8 -*- """ @Datetim ...

  3. Flask进阶

    Threading.local 作用:为每个线程创建一个独立的空间,使得线程对自己的空间中的数据进行操作(数据隔离). 应用: flask上下文管理中的local中比这更高级,为协程. DBUtils ...

  4. Linux 命令详解(十三)如何启动、关闭和设置ubuntu防火墙

    sudo  ufw enable|disable 由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.1 ...

  5. <锋利的jQuery>读书笔记

  6. JN_0006:MongoDB未授权访问漏洞处理

    开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作而且可以远程访问数据库. 2.[修复建议]:临时方案:配置AUTH,做好访问认证.打开 ...

  7. 找不到或无法加载主类(Could not find or load main class)

    一般可能会是包名引起的,还有可能就不小心加上了.class后缀 解决方案如下 可以加上目录或者使用符号 . ,注意要用空格隔开 java -cp d:\sample HelloWorldjava -c ...

  8. vue-cli3.0 项目如何使用sass

    执行: npm install node-sass --save-dev npm install sass-loader --save-dev 自动安装sass,vue-cli3.0 不需要在 web ...

  9. 【easy】561. Array Partition I

    Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...

  10. 命令操作MySQL数据库

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...