LinQ高級查詢、組合查詢、IQueryable集合類型


LinQ高級查詢:

1、模糊查詢(包含)

Repeater1.DataSource = con.car.Where(r =>r.name.Contains(s)).ToList();

2、開頭

Repeater1.DataSource = con.car.Where(r =>r.name.StartsWith(s)).ToList();

3、結尾

Repeater1.DataSource = con.car.Where(r =>r.name.EndsWith(s)).ToList();

4、個數

IEnumerable<car> clist = con.car;
int count =clist.Count;

5、最大最小值平均值

con.car.Max(r => r.price);
con.car.Min(r => r.price);
con.car.Average(r => r.price);

6、求和、升序、降序

con.car.Sum(r => r.price);
Repeater1.DataSource = con.car.OrderBy(r => r.price);
Repeater1.DataSource = con.car.OrderByDescending(r => r.price);

7、分頁

  集合的Skip方法:跳過多少條數據

  Take方法:取前多少條數據  

  例:打開頁面綁定第一頁的數據

int count = 4;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (Data0928DataContext con = new Data0928DataContext())
            {
                Repeater1.DataSource = con.Users.Take(count).ToList();
                Repeater1.DataBind();
            }
        }
    }

8、組合查詢

  首先介紹一下IQueryable集合,在LinQ中使用此集合,不會立馬查詢出實際的數據,而是在真正使用到此集合時才會去執行查詢,可以提高服務器內存的效率,避免占用內存過多導致服務器崩潰,但需注意如果中途把此集合ToList()則會立刻執行並返回實際的數據。

using (Data0928DataContext con = new Data0928DataContext())
        {
            IQueryable<Users> ulist = con.Users;
            if (name.Length > 0)
            {
                ulist = ulist.Where(r => r.UserName.Contains(name));
            }
            if (nick.Length > 0)
            {
                ulist = ulist.Where(r => r.NickName.Contains(nick));
            }
            if (year.Length > 0)
            {
                ulist = ulist.Where(r => Convert.ToDateTime(r.Birthday).Year.ToString() == year);
            }
            Repeater1.DataSource = ulist.Take(count);
            Repeater1.DataBind();
        }    

9、集合的交集

  集合的Intersect方法,取兩個集合的交集

var allList = nameList.Intersect(brandList);

另:

  並集:Union方法

  差集:Except方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM