過去寫程式在查詢比對Array或List中內容時總習慣又for或foreach迴圈

但發現LINQ語法是個更簡潔又好懂好維護的方法,習慣了SQL的人一定會覺得親切

立馬筆記一下

 

要使用linq要記得先using System.Linq;

語法如下

var q =
    from member in memberList        // List中的item, 跟foreach member in memberList意思一樣
    let score = member.score[0]+member.score[1]+member.score[2]        // 可把複雜的計算用變數表示
    where score >= 240      // 條件
    where member.zz.StartsWith( "A" ) || member.zz.StartsWith( "a" )       // 寫成多行就是AND的意思, 也可用OR
    orderby member.id ascending    // 排序: ascending / descending
    select member;        // 亦可output其他內容 e.g. select member.FirstName + " " + member.LastName

最後看你要把內容存成Array或List均可 List<string> szMemberName = q.toList();

另外還有group的功能可以使用

var q2 =
    from member in member List
    group member by member.LastName[0] into groupInLastName
    orderby groupInLastName.Key        // Key就是上一行的member.LastName[0]
    select member;

foreach (var groupInLastName in q2) {
    ...
}

join來不及寫到,之後再補

reference: 

 

arrow
arrow

    Milexz 發表在 痞客邦 留言(0) 人氣()