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中使用子查询:(了解就好,避免使用这种方法! ...
随机推荐
- Entity Framework入门教程(18)---EF6中基于代码进行配置方式
EF6中基于代码进行配置方式 我们以前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法. ...
- django - 总结 - cookie|session
Cookie是通过HTTP请求和响应头在客户端和服务器端传递的. 在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术. --------------------- ...
- SpringBoot系列: Pebble模板引擎
===============================Java 模板引擎选择===============================SpringBoot Starter项目向导中可选的J ...
- About the Importance of Aim in Life
Have an aim in life, or your energies will all be wasted. ---R. Peters 人生应该树立目标,否则你的精力会白白浪费. ---彼得 ...
- 异常捕获try----catch
如果try语句里有return,返回的是try语句块中变量值. 详细执行过程如下: 如果有返回值,就把返回值保存到局部变量中: 执行jsr指令跳到finally语句里执行: 执行完finally语句后 ...
- 什么是DAPP
DAPP(Decentralized Application)去中心化的应用 DAPP可以是网站,也可以是手机app,只要主要逻辑和数据在区块链上就可以 在以太坊平台上,一个DAPP肯定基于一个或多个 ...
- jdk生成https证书
最近由于客户现场做“等保”,其中有一条要求我们必须使用https进行web端的请求,之前我们一直沿用的是默认的http请求,用户说不安全,唉~~局域网,一直强调安全,安全,话不多说了 我采用的使用JA ...
- 简易解说拉格朗日对偶(Lagrange duality)
引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...
- Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步
1. tortoiseSVN 关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用. 2. VisualSVN Server 关于 VisualSVN Serve ...
- 上传jar包到maven中央仓库过程中遇到的一些问题总结!
网上有很多相关教程, 我按步骤一步步走下来, 都还算顺利, 简单列举一下步骤以及其中需要注意的几个点(不详细, 不适合当教程) 第一步: 到https://issues.sonatype.org/se ...