欢迎来到pcbcoder的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

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;

 

posted on 2020-04-18 10:18  beacon87  阅读(161)  评论(0)    收藏  举报

导航