在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
学习linq只是之前,有些知识需要了解一下,这些会在学习linq中用到,下面就来简单说说,大的理论就不必多说了,主要看例子 1、初始化对象 当然了这个对象可以使类,也可以是集合 比如现在有一个类Student
View Code
class Student
{ public string name { get; set; } public string sex { get; set; } public int age { get; set; } } 一般初始化的时候,需要用到new调用构造函数,初始化并赋值
View Code
Student stu = new Student();
stu.age = ""; stu.name = ""; stu.sex = ""; 下面我们用另外一种方式初始化并赋值,也就是这里重点说的方式
View Code
Student ss = new Student() { name = "张三", age = 25, sex = "男" };
这就是.net3.5中新加的初始化对象方式,当然也可以用于集合 IList<int> ss = new List<int>() {1,2,5,4,5,5};
2、隐式类型 通过var定义类型
var name = "student";
var time = DateTime.Now; 隐式类型var定义,定义后必须复制,属于强类型,不能更改类型 3、匿名类型 看看下面的例子 var nm = new { name = "张三", sex = "男", age = 25 }; //匿名类型
这就相当于定义了一个nm类,只适合临时使用,就是一个临时类 4、匿名方法 说匿名方法之前看看委托 委托: 附件里有关于委托的例子可以下载下来看看 这里的匿名方法其实就就是对委托的简化 写法:delegate(参数){方法体} 可以直接写委托方法,不用另外写个方法,然后通过+=来赋值
View Code
public partial class 匿名方法_nmDemo1 : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e) { Student ss = new Student(); ss.sayHi("张三", delegate(string name) { Response.Write("hi," + name); }); } //public void say1(string name) //{ // Response.Write("hello," + name); //} } public delegate void say(string name); public class Student { public void sayHi(string name,say s) { if(s!=null) { s(name); } } } 下面讲到的lamnda有进一步的简化了匿名方法的写法 6、lamnda 上面的例子可简化为
View Code
public partial class lamnda_lamndaDemo : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e) { Student ss = new Student(); //ss.sayHi("张三", delegate(string name) { Response.Write("hi," + name); }); ss.sayHi("张三", (string name) => { Response.Write("你好," + name); }); } } public delegate void say(string name); public class Student { public void sayHi(string name, say s) { if (s != null) { s(name); } } } 关于limba表达式,只需要记住两点即可 1、简化匿名方法的写法 2、多用于对集合的操作
View Code
protected void Page_Load(object sender, EventArgs e)
{ List<int> aa = new List<int>(); aa.Add(10); aa.Add(20); aa.Add(30); aa.Add(40); Response.Write(aa.Count(n => n < 30)); Response.Write("原来的数是<br>"); string bb=null; for (int i = 0; i <aa.Count; i++) { bb += aa[i]+" "; } Response.Write(bb); Response.Write("从大到小排序的数是<br>"); aa.Sort((x, y) => y - x); string cc = null; for (int i = 0; i < aa.Count; i++) { cc += aa[i] + " "; } Response.Write(cc); }
可以作为一个条件表达式来使用 7、扩展方法 这是.net3.5又一个突破,当我们不知道一个类的内部成员情况的时候,而又想添加一个方法成员该怎么办呢,这个时候就可以使用扩展方法,具体用法是这样的,看下面的例子,如果现在想对string类型添加一个方法,该怎么做呢,看下面的例子
View Code
public partial class 扩展方法_kzway : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e) { string input="456"; if (input.isInt()) { Label1.Text = "是整数类型"; } else { Label1.Text = "不是整数类型"; } } } static class stringExtend { public static bool isInt(this string s) { int n; if (!int.TryParse(s, out n)) { return false; } else { if (n > 0) { return true; } else { return false; } } } } 首先添加的扩展方法要放在静态类中static class stringExtend 这就是扩展方法的语法
以上几点知识就是学习linq需要用到的知识
|
请发表评论