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中使用子查询:(了解就好,避免使用这种方法! ...
随机推荐
- Pandas系列(二)- DataFrame数据框
一.初识DataFrame dataFrame 是一个带有索引的二维数据结构,每列可以有自己的名字,并且可以有不同的数据类型.你可以把它想象成一个 excel 表格或者数据库中的一张表DataFram ...
- ZooKeeper-API CURD
ZooKeeper Java API pom.xml 依赖 <?xml version="1.0" encoding="UTF-8"?> <p ...
- npm install 之前做的事
在一个项目目录中,npm install之前,需要npm init,npm init会问你几个问题,有的需要输入,不想输入的一路回车就行,之后会自动创建一个package.json文件,有了这个pac ...
- Groovy 设计模式 -- 迭代器模式
Iterator Pattern http://groovy-lang.org/design-patterns.html#_flyweight_pattern 迭代器模式,允许顺序访问 聚集对象中的中 ...
- python,可变对象,不可变对象,深拷贝,浅拷贝。
学习整理,若有问题,欢迎指正. python 可变对象,不可变对象 可变对象 该对象所指定的内存地址上面的值可以被改变,变量被改变后,其所指向的内存地址上面的值,直接被改变,没有发生复制行为,也没有发 ...
- css实现移动端水平滚动导航
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()
row_number() ,RANK() 和 DENSE_RANK() 三个配合over() 使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (OR ...
- jsonp简介
jsonp主要是利用script的跨域.简单点说就是像img,css,js这样的文件是跨域的,这也就是为什么我们能够利用cdn进行加速的原因.而且像js这样的文件,如果里面是一个自执行的代码,比如: ...
- codeblocks修改字体颜色-背景颜色
常用: 1. 编辑器背景-豆沙绿配置:色调85,饱和度123,亮度205: 2. 注释颜色-紫色:rgb(255,0,255): 参考: 改变codeblocks里面各种注释的颜色 常用颜色的RGB值 ...
- Idea 创建控制台程序
1:前提配置好 jdk环境. 最后一步:填写项目名称和保存的路径 即可.