linq查询
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace linq 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //Linq查询 14 List<A1> a1 = new List<A1>(); 15 a1.Add(new A1 { Id = 10, Name = "aaa", Age = 101, Gender = true }); 16 a1.Add(new A1 { Id = 15, Name = "bbb", Age = 21, Gender = true }); 17 a1.Add(new A1 { Id = 12, Name = "ccc", Age = 21, Gender = false }); 18 a1.Add(new A1 { Id = 13, Name = "ddd", Age = 200, Gender = false }); 19 List<DogToy> a2 = new List<DogToy>(); 20 a2.Add(new DogToy { DogId = 11, DogName = "小白" }); 21 a2.Add(new DogToy { DogId = 10, DogName = "小欢" }); 22 a2.Add(new DogToy { DogId = 12, DogName = "小美" }); 23 a2.Add(new DogToy { DogId = 15, DogName = "小王" }); 24 25 //查询所有语句 26 var s1 = (from c in a1 select c).ToList(); 27 Console.WriteLine("查询所有语句:"); 28 foreach (var item in s1) 29 { 30 Console.WriteLine(item.ToString()); 31 } 32 //查询Gender为false的成员 33 var s2 = from c in a1 where c.Gender == false select c; 34 Console.WriteLine("查询Gender为false的成员:"); 35 foreach (var item in s2) 36 { 37 Console.WriteLine(item.ToString()); 38 } 39 //orderby排序 40 var s3 = from c in a1 orderby c.Id select c; 41 Console.WriteLine("orderby排序:"); 42 foreach (var item in s3) 43 { 44 Console.WriteLine(item.ToString()); 45 } 46 //Join连接两个集合相匹配元素,注意:连接条件使用equals关键字!!! 47 var s4 = from c in a1 join t in a2 on c.Id equals t.DogId select new { A1Name = c.Name, DogName = t.DogName }; 48 Console.WriteLine("Join连接两个集合相匹配元素:"); 49 foreach (var item in s4) 50 { 51 Console.WriteLine(item.ToString()); 52 } 53 //Join连接两个集合所有元素 54 var s5 = from c in a1 join t in a2 on c.Id equals t.DogId select new { A1Name = c, DogName = t }; 55 Console.WriteLine("Join连接两个集合相匹配元素:"); 56 foreach (var item in s5) 57 { 58 Console.WriteLine(item.ToString()); 59 } 60 //分组group...by 61 var s6 = from c in a1 group c by c.Gender; 62 foreach (var group in s6) 63 { 64 Console.WriteLine(group.Key.ToString()); 65 foreach (var item in group) 66 { 67 Console.WriteLine(item.ToString()); 68 } 69 } 70 71 Console.ReadLine(); 72 } 73 } 74 } 75 76 77 public class A1 78 { 79 public int Id { get; set; } 80 public string Name { get; set; } 81 public int Age { get; set; } 82 public bool Gender { get; set; } 83 //重写ToString方法 84 public override string ToString() 85 { 86 return Id + "," + Name + "," + Age + "," + Gender; 87 } 88 } 89 90 public class DogToy 91 { 92 public int DogId { get; set; } 93 public string DogName { get; set; } 94 //重写ToString方法 95 public override string ToString() 96 { 97 return DogId + "," + DogName; 98 } 99 }
//Linq查询例子: var count = (from u in db.Users where u.Name == userName && u.Pwd == userPwd select u).ToList();//得到一个集合数量,获取用户输入的用户名与密码是否与数据库匹配 var query = (from u in db.Users orderby u.Pwd ascending select u).ToList();//升序排序 var query = (from u in db.Users orderby u.Pwd descending select u).ToList();//降序排序 var query = (from u in db.Users group u by u.Gender).ToList();//将Gender分组 foreach (var group in query) { Console.WriteLine("小组:"+group.Key);//各小组 foreach (var item in group) { Console.WriteLine(item.ToString());//小组成员 } } MethodInfo[] methods = typeof(string).GetMethods(); //第一种方法,获取所有string方法并去除重复的方法 var result = (from m in methods where m.IsStatic != true select m.Name).Distinct().ToList(); //第二种方法,用group by var result1 = (from m in methods where m.IsStatic != true group m by m.Name into g select new { MethodName = g.Key, Overload = g.Count() }).ToList(); //分页 var list1 = db.Users.ToList(); var first = (from c in list1 select c).Skip(0).Take(3).ToList(); //封装分页方法 static List<T> GetPagedListByIndex<T>(List<T> groupList,int pageIndex) { int pageSize = 3; var first = (from c in groupList select c).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); //return groupList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); return first; } //Join内连接,没有分类的产品查询不到 var innerjoin = from p in ctx.Products join c in ctx.Categories on p.CategoryID equals c.CategoryID select p.ProductName; //外连接,没有分类的产品也能查询到 var leftjoin = from p in ctx.Products join c in ctx.Categories on p.CategoryID equals c.CategoryID into pro from x in pro.DefaultIfEmpty() select p.ProductName;
作者:HRJ
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
浙公网安备 33010602011771号