首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

LINQ 學習筆記 (六) Group 與 Join 進階 (二) GroupBy 與內部聯接

     編輯:關於C語言

GroupBy 分組操作

依鍵值將序列分組,回傳 IEnumerable<IGrouping<TKey, TElement>>。

基本用法

var groups = DataSource.Scores.GroupBy(score => score.StudentID);

包裝為匿名型別

var result = from score in DataSource.Scores
             group score by score.StudentID into scoreGroup
             select new { StudentID = scoreGroup.Key, Group = scoreGroup };

// 方法語法重載
var result = DataSource.Scores.GroupBy(
    score => score.StudentID,
    (key, group) => new { StudentID = key, Group = group });

Join 內部聯接

只選取雙方都有對應鍵值的元素組合。查詢學生姓名、科目、成績:

var result = from score in DataSource.Scores
             join student in DataSource.Students on score.StudentID equals student.StudentID
             join course in DataSource.Courses on score.CourseID equals course.CourseID
             select new { StudentName = student.Name, CourseName = course.CourseName, ScoreValue = score.Value };

方法語法鏈式 Join

var result = DataSource.Scores.Join(
    DataSource.Students,
    score => score.StudentID,
    student => student.StudentID,
    (score, student) => new { StudentName = student.Name, ScoreValue = score.Value, CourseID = score.CourseID })
.Join(
    DataSource.Courses,
    scostu => scostu.CourseID,
    course => course.CourseID,
    (scostu, course) => new { StudentName = scostu.StudentName, CourseName = course.CourseName, ScoreValue = scostu.ScoreValue });
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved