理論與技術
diff --git a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json
index 9414efa..97294ba 100644
--- a/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json
+++ b/App/wwwroot/HiAPI-docsite/brief/user-guide/zh-Hant/toc.json
@@ -1,2 +1,2 @@
-{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"徑向角度量測","href":"milling-tool/radial-angle-measurement.html","topicHref":"milling-tool/radial-angle-measurement.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","href":"script/index.html","topicHref":"script/index.html","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行NC碼字串","href":"script/PlayNc/index.html","topicHref":"script/PlayNc/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"播放器控制","href":"script/PlayerControl/index.html","topicHref":"script/PlayerControl/index.html"},{"name":"事件處理","href":"script/Events/index.html","topicHref":"script/Events/index.html"},{"name":"屬性設定","href":"script/Properties/index.html","topicHref":"script/Properties/index.html"},{"name":"動作操作","href":"script/ActOperations/index.html","topicHref":"script/ActOperations/index.html"},{"name":"加工步變數","href":"script/StepVariables/index.html","topicHref":"script/StepVariables/index.html"},{"name":"訊息處理","href":"script/Messages/index.html","topicHref":"script/Messages/index.html"},{"name":"運行時管理","href":"script/RuntimeManagement/index.html","topicHref":"script/RuntimeManagement/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"載入切削參數","href":"script/LoadCuttingPara/index.html","topicHref":"script/LoadCuttingPara/index.html"},{"name":"物理仿真設定","href":"script/Physics/index.html","topicHref":"script/Physics/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"},{"name":"刀具與智慧刀把設置","href":"script/ToolSetup/index.html","topicHref":"script/ToolSetup/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"},{"name":"仿真CPU使用率","href":"theory-and-technique/cpu-usage/index.html","topicHref":"theory-and-technique/cpu-usage/index.html"}]}]}
+{"items":[{"name":"HiNC 使用說明","href":"index.html","topicHref":"index.html"},{"name":"使用者條款","href":"license/index.html","topicHref":"license/index.html"},{"name":"HiNC啟用","items":[{"name":"Windows系統啟用","href":"startup/windows.html","topicHref":"startup/windows.html"},{"name":"單機多站配置","href":"startup/multi-station.html","topicHref":"startup/multi-station.html"},{"name":"多主機授權設置","href":"startup/delegate-auth.html","topicHref":"startup/delegate-auth.html"},{"name":"教學視頻","href":"startup/tutorial.html","topicHref":"startup/tutorial.html"}]},{"name":"系統","items":[{"name":"檔案總管","href":"system/file-explorer.html","topicHref":"system/file-explorer.html"}]},{"name":"設備","items":[{"name":"錨點","href":"mech/anchor.html","topicHref":"mech/anchor.html"},{"name":"工具機建置","href":"equipment/build-machine-tool.html","topicHref":"equipment/build-machine-tool.html"},{"name":"冷卻液","href":"equipment/coolant.html","topicHref":"equipment/coolant.html"}]},{"name":"控制器","items":[{"name":"海德漢支援","href":"controllers/heidenhain-support.html","topicHref":"controllers/heidenhain-support.html"},{"name":"通用NC碼支援","href":"controllers/iso-nc-support.html","topicHref":"controllers/iso-nc-support.html"}]},{"name":"加工工具","items":[{"name":"銑刀","href":"milling-tool/cutter.html","topicHref":"milling-tool/cutter.html"},{"name":"APT工具","href":"milling-tool/apt.html","topicHref":"milling-tool/apt.html"},{"name":"刀片式刃雕","href":"milling-tool/insert-cutter/index.html","topicHref":"milling-tool/insert-cutter/index.html"},{"name":"徑向角度量測","href":"milling-tool/radial-angle-measurement.html","topicHref":"milling-tool/radial-angle-measurement.html"},{"name":"智慧刀把","href":"milling-tool/smart-tool-holder.html","topicHref":"milling-tool/smart-tool-holder.html"}]},{"name":"腳本命令","href":"script/index.html","topicHref":"script/index.html","items":[{"name":"文件任務","href":"script/Doc-Task/index.html","topicHref":"script/Doc-Task/index.html"},{"name":"執行NC檔案","href":"script/PlayNcFile/index.html","topicHref":"script/PlayNcFile/index.html"},{"name":"執行NC碼字串","href":"script/PlayNc/index.html","topicHref":"script/PlayNc/index.html"},{"name":"執行CSV檔案","href":"script/PlayCsvFile/play-csv-file.html","topicHref":"script/PlayCsvFile/play-csv-file.html"},{"name":"播放器控制","href":"script/PlayerControl/index.html","topicHref":"script/PlayerControl/index.html"},{"name":"事件處理","href":"script/Events/index.html","topicHref":"script/Events/index.html"},{"name":"屬性設定","href":"script/Properties/index.html","topicHref":"script/Properties/index.html"},{"name":"動作操作","href":"script/ActOperations/index.html","topicHref":"script/ActOperations/index.html"},{"name":"加工步變數","href":"script/StepVariables/index.html","topicHref":"script/StepVariables/index.html"},{"name":"訊息處理","href":"script/Messages/index.html","topicHref":"script/Messages/index.html"},{"name":"運行時管理","href":"script/RuntimeManagement/index.html","topicHref":"script/RuntimeManagement/index.html"},{"name":"碰撞檢測","href":"script/Collision/index.html","topicHref":"script/Collision/index.html"},{"name":"離料","href":"script/FlyPiece/index.html","topicHref":"script/FlyPiece/index.html"},{"name":"幾何差異","href":"script/GeomDiff/index.html","topicHref":"script/GeomDiff/index.html"},{"name":"映射","href":"script/Mapping/index.html","topicHref":"script/Mapping/index.html"},{"name":"銑削訓練","href":"script/MillingTraining/index.html","topicHref":"script/MillingTraining/index.html"},{"name":"載入切削參數","href":"script/LoadCuttingPara/index.html","topicHref":"script/LoadCuttingPara/index.html"},{"name":"物理仿真設定","href":"script/Physics/index.html","topicHref":"script/Physics/index.html"},{"name":"NC優化","href":"script/NcOptimization/index.html","topicHref":"script/NcOptimization/index.html"},{"name":"解析度","href":"script/Resolution/index.html","topicHref":"script/Resolution/index.html"},{"name":"運行時幾何","href":"script/RuntimeGeom/index.html","topicHref":"script/RuntimeGeom/index.html"},{"name":"輸出Shot檔案","href":"script/WriteShotFiles/index.html","topicHref":"script/WriteShotFiles/index.html"},{"name":"輸出Step檔案","href":"script/WriteStepFiles/index.html","topicHref":"script/WriteStepFiles/index.html"},{"name":"刀具與智慧刀把設置","href":"script/ToolSetup/index.html","topicHref":"script/ToolSetup/index.html"}]},{"name":"輸出","items":[{"name":"模擬步階輸出資訊","href":"output/simulation-step-output.html","topicHref":"output/simulation-step-output.html"}]},{"name":"優化","items":[{"name":"NC優化","href":"optimization/index.html","topicHref":"optimization/index.html"}]},{"name":"範例","href":"examples/index.html","topicHref":"examples/index.html","items":[{"name":"動力計訓練銑削係數","href":"examples/milling-training-dynamometer/index.html","topicHref":"examples/milling-training-dynamometer/index.html"},{"name":"串聯控制器資料及感測器資料","href":"examples/mapping-demo/index.html","topicHref":"examples/mapping-demo/index.html"}]},{"name":"理論與技術","items":[{"name":"銑削物理座標系","href":"theory-and-technique/milling-physics-coordinates.html","topicHref":"theory-and-technique/milling-physics-coordinates.html"},{"name":"評估製程可加工性","href":"availability/index.html","topicHref":"availability/index.html"},{"name":"刀具壽命與磨耗","href":"technique/wear.html","topicHref":"technique/wear.html"},{"name":"第一離隙角避讓","href":"technique/relief-face-avoidance/index.html","topicHref":"technique/relief-face-avoidance/index.html"},{"name":"仿真CPU使用率","href":"theory-and-technique/cpu-usage/index.html","topicHref":"theory-and-technique/cpu-usage/index.html"}]}]}
diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json
index 0393a1d..528a89e 100644
--- a/App/wwwroot/HiAPI-docsite/index.json
+++ b/App/wwwroot/HiAPI-docsite/index.json
@@ -357,7 +357,7 @@
"api/Hi.Common.Collections.ListUtil.html": {
"href": "api/Hi.Common.Collections.ListUtil.html",
"title": "Class ListUtil | HiAPI-C# 2025",
- "summary": "Class ListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Provides utility methods for working with lists and collections. public static class ListUtil Inheritance object ListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCeilBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) Gets the ceil item by seeking with the specified direction. public static SearchResult GetCeilBySeek(this IList src, TKey key, Func getKeyFunc, out TItem ceilValue, out int ceilIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. ceilValue TItem The output ceil value. ceilIndex int The output ceil index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. GetCeilIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) Gets the ceil index by seeking with the specified direction. public static SearchResult GetCeilIndexBySeek(this IList src, TKey key, Func getKeyFunc, out int ceilIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. ceilIndex int The output ceil index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartIndex bound. GetCeilIndex(IList, ItemKey, Func, out int) Gets the ceiling index of an item in a sorted list based on a key comparison. public static SearchResult GetCeilIndex(this IList sortedItems, ItemKey key, Func comparingFunc, out int index) Parameters sortedItems IList The sorted list to search in. key ItemKey The key to search for. comparingFunc Func A function that compares an item to the key. index int When this method returns, contains the index of the ceiling item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters Item The type of items in the list. ItemKey The type of the key to search for. GetCeilIndex(IList, TKey, Func, out int) Gets the ceiling index of an item in a sorted list based on a key selector function. public static SearchResult GetCeilIndex(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out int index) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. index int When this method returns, contains the index of the ceiling item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetCeil(IList, TKey, Func, out Item) Gets the ceiling item in a sorted list based on a key selector function. public static SearchResult GetCeil(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out Item dst) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. dst Item When this method returns, contains the ceiling item if found; otherwise, the default value for the type. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetFloorBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) Gets the floor item by seeking with the specified direction. public static SearchResult GetFloorBySeek(this IList src, TKey key, Func getKeyFunc, out TItem floorValue, out int floorIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. floorValue TItem The output floor value. floorIndex int The output floor index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. GetFloorIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) Gets the floor index by seeking with the specified direction. public static SearchResult GetFloorIndexBySeek(this IList src, TKey key, Func getKeyFunc, out int floorIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. floorIndex int The output floor index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartIndex bound. GetFloorIndex(IList, ItemKey, Func, out int) Gets the floor index of an item in a sorted list based on a key comparison. public static SearchResult GetFloorIndex(this IList sortedItems, ItemKey key, Func comparingFunc, out int index) Parameters sortedItems IList The sorted list to search in. key ItemKey The key to search for. comparingFunc Func A function that compares an item to the key. index int When this method returns, contains the index of the floor item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters Item The type of items in the list. ItemKey The type of the key to search for. GetFloorIndex(IList, TKey, Func, out int) Gets the floor index of an item in a sorted list based on a key selector function. public static SearchResult GetFloorIndex(this IList sortedItems, TKey key, Func getKeyFunc, out int index) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. index int When this method returns, contains the index of the floor item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetFloor(IList, TKey, Func, out Item) Gets the floor item in a sorted list based on a key selector function. public static SearchResult GetFloor(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out Item dst) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. dst Item When this method returns, contains the floor item if found; otherwise, the default value for the type. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetIndexBasedEnumerable(IList) Creates an enumerable that provides access to all elements in a list by index. public static ListIndexBasedEnumerable GetIndexBasedEnumerable(this IList src) Parameters src IList The source list Returns ListIndexBasedEnumerable A ListIndexBasedEnumerable for the entire list Type Parameters TItem The type of elements in the list GetIndexBasedEnumerable(IList, int, int) Creates an enumerable that provides access to a range of elements in a list by index. public static ListIndexBasedEnumerable GetIndexBasedEnumerable(this IList src, int begin, int end) Parameters src IList The source list begin int The starting index (inclusive) end int The ending index (exclusive) Returns ListIndexBasedEnumerable A ListIndexBasedEnumerable for the specified range Type Parameters TItem The type of elements in the list GetIndexByBinarySearch(IList, TItem) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TItem value) Parameters sortedItems IList The list to be searched. value TItem The value to search for. Returns int Type Parameters TItem The type of the item. GetIndexByBinarySearch(IList, TItem, IComparer) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TItem value, IComparer comparer) Parameters sortedItems IList The list to be searched. value TItem The value to search for. comparer IComparer The comparer that is used to compare the value with the list items. Returns int Type Parameters TItem The type of the item. GetIndexByBinarySearch(IList, TSearch, Func) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TSearch value, Func comparer) Parameters sortedItems IList The list to be searched. value TSearch The value to search for. comparer Func The comparer that is used to compare the value with the list items. Returns int Type Parameters TItem The type of the item. TSearch The type of the searched item. GetInterpolatedBoundary(List, double, double, Func, out TItem, out TItem, out TItem) Gets interpolated boundary items from a list based on a key value and interval. public static void GetInterpolatedBoundary(this List scpList, double z, double zInterval, Func keyFunc, out TItem cur, out TItem floor, out TItem ceil) where TItem : IAdditionOperators, IMultiplyOperators Parameters scpList List The source list. z double The key value to find or interpolate at. zInterval double The interval to consider around the key value. keyFunc Func A function that extracts the key from an item. cur TItem When this method returns, contains the interpolated item at the key value. floor TItem When this method returns, contains the floor item. ceil TItem When this method returns, contains the ceiling item. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, double, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a double key, using operators for addition and multiplication. public static TItem GetInterpolatedValue(this List sortedItems, double keyQuantity, Func getKeyQuantityFunc, ListUtil.OuterPolationMode outerPolationMode) where TItem : IAdditionOperators, IMultiplyOperators Parameters sortedItems List The sorted list to interpolate from. keyQuantity double The key to find or interpolate at. getKeyQuantityFunc Func A function that extracts the key from an item. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, double, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a double key. public static TItem GetInterpolatedValue(this List sortedItems, double key, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list to interpolate from. key double The key to find or interpolate at. getKeyFunc Func A function that extracts the key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list. GetInterpolatedValue(List, TimeSpan, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a TimeSpan key, using operators for addition and multiplication. public static TItem GetInterpolatedValue(this List sortedItems, TimeSpan keyQuantity, Func getKeyQuantityFunc, ListUtil.OuterPolationMode outerPolationMode) where TItem : IAdditionOperators, IMultiplyOperators Parameters sortedItems List The sorted list to interpolate from. keyQuantity TimeSpan The TimeSpan key to find or interpolate at. getKeyQuantityFunc Func A function that extracts the TimeSpan key from an item. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, TimeSpan, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a TimeSpan key. public static TItem GetInterpolatedValue(this List sortedItems, TimeSpan key, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list to interpolate from. key TimeSpan The TimeSpan key to find or interpolate at. getKeyFunc Func A function that extracts the TimeSpan key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list. GetInterpolatedValue(List, TKey, Func, Func, Func, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a key using custom comparison and arithmetic functions. public static TItem GetInterpolatedValue(this List sortedItems, TKey key, Func getKeyFunc, Func keyCompareFunc, Func keyMinusFunc, Func keyDivFunc, Func addingFunc, Func scalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list of items key TKey The key to search for getKeyFunc Func A function that extracts the key from an item keyCompareFunc Func A function that compares two keys keyMinusFunc Func A function that subtracts one key from another keyDivFunc Func A function that divides one key by another addingFunc Func A function that adds two items scalingFunc Func A function that scales an item by a factor outerPolationMode ListUtil.OuterPolationMode The mode for handling values outside the range Returns TItem The interpolated value Type Parameters TKey The type of the key TItem The type of elements in the list GetListByKeyBoundary(List, Func, TKey, bool, TKey, bool) Gets a subset of a sorted list based on key boundaries. public static List GetListByKeyBoundary(this List sortedItems, Func getKeyQuantityFunc, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable Parameters sortedItems List The sorted list to filter. getKeyQuantityFunc Func A function that extracts the key from an item. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling of the ending key. Returns List A new list containing only the items within the specified key range. Type Parameters TKey The type of the key, which must be comparable. TItem The type of items in the list. GetNearestIndex(IList, TItemKey, Func, out int) Finds the index of the element in a sorted list that is nearest to the specified key. public static SearchResult GetNearestIndex(this IList src, TItemKey key, Func itemToKeyDistanceFunc, out int index) Parameters src IList The source list key TItemKey The key to search for itemToKeyDistanceFunc Func A function that calculates the distance between an item and the key index int When this method returns, contains the index of the nearest element if found; otherwise, -1 Returns SearchResult A BinarySearchResult indicating the result of the search Type Parameters TItem The type of elements in the list TItemKey The type of the key to search for GetNearestIndex(IList, TItemKey, Func, Func, out int) Finds the index of the element in a sorted list that is nearest to the specified key using custom comparison functions. public static SearchResult GetNearestIndex(this IList src, TItemKey key, Func itemCompareToKeyFunc, Func itemToKeyDistanceFunc, out int index) Parameters src IList The source list (must be in ascending order) key TItemKey The key to search for itemCompareToKeyFunc Func A function that compares an item to the key itemToKeyDistanceFunc Func A function that calculates the distance between an item and the key index int When this method returns, contains the index of the nearest element if found; otherwise, -1 Returns SearchResult A BinarySearchResult indicating the result of the search Type Parameters TItem The type of elements in the list TItemKey The type of the key to search for Exceptions InvalidProgramException Thrown when an unexpected search result occurs GetSubListWithInterpolatedHeadAndTail(List, double, double, Func, Func, Func) Creates a new list with interpolated head and tail items based on the specified double key range. public static List GetSubListWithInterpolatedHeadAndTail(this List src, double beginKey, double endKey, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters src List The source list. beginKey double The beginning key of the range. endKey double The ending key of the range. getKeyFunc Func A function that extracts the double key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. Returns List A new list with interpolated head and tail items. Type Parameters TItem The type of items in the list. GetSubListWithInterpolatedHeadAndTail(List, TimeSpan, TimeSpan, Func, Func, Func