在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
LINQ是一组查询技术的统称,其主要思想是将各种查询功能直接集成到C#语言中,可以对 对象、XML文档、SQL数据库、外部应用程序等进行操作。 这里面讲的简单的几个子句, 必须以from子句开头,以select或group子句结尾。 例子: int [] nums={0,1,2,3,4,5}; var q = from n in nums // 表示查询数据的通用类型。 where n%2==0 select n; 一般用foreach()来输出结果。 foreach( var v in q){ Console.WriteLine(v.name); } 结果为:0 2 4 -------------------------- public class Student{ private string name; public string Name { get { return name; } set { name = value; } } //可以在set里面写if语句 ,比如;set{if(name="chen") {name=null;}else{ name=value;} 或者简写 public string name{get;set;} public int age{get;set;} } ... List<Student> students =new List<Student>() { new Student{name ="chen",age=24}, new Student{name ="li",age=24}, new Student{name ="zhang",age=23} } var q = from t in students select t; --------------------------------- where 子句 var q = from t in students where t.name=='chen' && t.age=24 select t; ---------------------------------- orderby 子句 用于排序 var q = from t in students orderby t.age descending,t.name ascending //按照age 降序 name 升序排列。 select t; --------------------------------------- group by子句 //用于分组 var q = from t in students foreach (var v in q)//必须使用嵌套的foreach循环 Console.WriteLine(v.key);//输出按照要求排序的键值 age 结果为: 24 chen li 23 zhang --------------------------------------------- select 子句 var q = from t in students Console.WriteLine(”{0}{1}“,v.姓名,v.年龄); } -------------------------------- join in 操作符 需要定义另一个集合,比如: public class People public string name { get; set; } public string sex { get; set; } 。。。。 List<People> peoples = new List<People>() { new People{name ="chen",sex="boy"}, new People{name ="li",sex="girl"}, new People{name ="zhang",sex="girl"} }; var q = from t in students join c in peoples on t.name equals c.name select new { 姓名 = c.name, 年龄 = t.age, 性别 = c.sex };//将两个对象的数据联系在一起,name一样时候相对应。 foreach (var v in q) 结果为: chen 24 boy li 24 girl zhang 23 girl --------------------------------------------------------------------------------- into 关键字 一般在 group里面用。 var q = from t in students where groupstu.Count()>=2 // 对这个变量进行筛选,即 当groupstu里的成员大于或等于2时。 select new { 姓名=t.name, 年龄=t.age} ------------------------------------------------------- let 关键字 // 中间变量,存储一个子表达式过程的变量。 比如: string[] str={"abc def"}; var q= from v in str let word= v.Split(' '); from vv in word let upword=vv.ToUpper();//将字母大写 select upword; 结果为:ABC DEF
|
请发表评论