---
# System prepended metadata

title: Week 3 常見彙整

---

# Week 3 常見彙整
- 大多數人結果
    - 結果正確 記憶體使用可再減少到100MB 耗時可以較目前節省3倍
- 寫法改善
    - 變數命名要具意義，lambda 表示式也是一樣，可以幫助閱讀者理解
    - 盡量使用可以較用具名屬性的類型，例如：匿名型別與ValueTuple，如果閱讀者只能看到 item1 會不明白他代表的意涵
    - 一個.cs 檔中，習慣只放一個 class，這樣方便於程式的管理與查找閱讀
    - class 要註明存取修飾詞
    - 使用index要小心 因為 index 範圍大小不一致導致的 OutOfIndex，可以善用foreach或是join的方式去做到你想要的效果
- LINQ 寫法注意
    - 每次使用 AsEnumerable() or ToList() 要注意是否要在這個階段強制執行，有可能會帶來額外的資源消耗
        * 之所以說 AsEnumerable 會強制執行
那個強制執行是 如果原本是 IQueryable 的遇到 AsEnumerable 就會執行查詢把資料拉回來 幫你轉換成 IEnumerable，但本來就是 IEnumerable 的 就不會執行 要等巡覽才會 (這點跟ToList 就不太一樣囉)
    - 使用 GroupJoin 要注意，是否清楚他是先執行 join 還是group by，是否能達到你想要的效果，且不會造成多餘的耗能
    - 還是有許多可以使用LINQ可以更簡潔的寫法，例如計算與分群