【.NET】Linq几样特点
2024-10-19 03:34:02
LinQ 是 .net framework 3.5的技术,对集合的查询和操作十分方便,结合LinQ Provider ,可以更方便操作XML和SQL(或Entity)。
LinQ有6样常用的特性:
- 自动属性
- 隐形类型
- 对象集合初始器
- 匿名类
- 扩展方法
- Lambda表达式
自动属性就是,之前实体类的写法,需要有字段和属性赋值,现在都省略了,写成:
public class users{
public int uid{get;set;}
}
隐形类型就是,可以使用类似javascript的var来声明变量了,编译时赋值后,就不能改变数据类型。
var i = ;
对象集合初始器就是,类似以前重载构造函数,用构造函数赋值的方法,现在更方便的做法:
//简单的
User user = new User{id=;name="bb";sex="男";}
//嵌套的
User user = new User{
new Address{city="深圳";qu="福田区";}
}
//用集合List的数组类
List<User> user = new List{
new User{id=;name="AA";sex="男"},
new User{id=;name="BB";sex="女"}
}
匿名类就是,隐形类型+对象集合初始器
var u = new User{id=;name="aa";sex="男"};
扩展方法就是,静态方法都可以直接在变量上使用了,如:
//静态的公用方法
public static class common{
public static bool IsNum(this sting s)
{
//判断是否数字
Regex regex = new Regex(@"^[0-9]*$");
return regex.IsMatch(s);
}
} //在别的类
public class a{
public void abc()
{
string str1 = "";
str1.IsNum();
}
}
Lambda表达式(冷打)就是,s=>s.IndexOf("abc") > 0 规则是(参数列表)=>表达式或查询语句,目前知道的可以用在委托和是Prodicate<T>的时候。
//委托
delegate int get1(int);
get1 bb = s=> s * s;
int j = bb(); //j=25 //Prodicate<T>
List<int> temp = new List<int>{,,};
var aa1 = temp.FindAll(s => s == );
最新文章
- Windows下部署Appium教程(Android App自动化测试框架搭建)
- spring--学习之IOC DI
- RobotFramework自动化测试之环境搭建安装教程(一)
- node + nginx + mongo搭建负载均衡
- 一步步搭建自己的轻量级MVCphp框架-(三)一个国产轻量级框架Amysql源码分析(2) 进程
- Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建
- IO(Input Output)流__字节流
- FAQ:注册表_键值类型
- Lamp环境搭建Linux CentOS6.5编译安装mysql5.6
- BZOJ_4872_[Shoi2017]分手是祝愿_概率与期望
- Floor报错原理分析
- Springboot集成ECharts
- 2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest
- [20180926]神奇的规避ORA-01795方法.txt
- 正确理解Handle对象
- 最全面的 Spring 学习笔记
- CentOS安装redis-audit 但执行时出错未解决 记录一下安装过程
- js中的面向对象--类似于类的概念
- jquery.dataTables表格中的内容怎么设置让它不自动换行
- hdu1114 dp(完全背包)