local style1 = function() for i=1, loopCount do local v1,v2,v3,v4,v5 = table.unpack(table_a) end end
選手二 get value directly
1 2 3 4 5 6 7 8 9
local style2 = function() for i=1, loopCount do local v1 = table_a[1] local v2 = table_a[2] local v3 = table_a[3] local v4 = table_a[4] local v5 = table_a[5] end end
結果
1 2
elapsed: 75.28 ms // style1: unpack elapsed: 0.40 ms // style2
//找出所有 .csproj 檔案 var allFiles = Directory.GetFiles(arg, "*.csproj", SearchOption.AllDirectories); //依序以 XDocument 載入並解析出第三方套件的名稱與版本號 foreach (var file in allFiles) { var projDefinition = XDocument.Load(file); var elements = projDefinition.Element("Project")?.Element("ItemGroup")?.Elements("PackageReference");
if (elements == null) continue; if (!elements.Any()) continue; var pkgRefs = elements.ToDictionary(x => x.Attribute("Include")?.Value, x => x.Attribute("Version")?.Value); }
剩下的功能就是查詢 Nuget 取得版本號碼。 由於大部分人的使用都是直接使用 IDE 或 VS 的 package management console 來安裝,幾乎沒有使用 api 去呼叫的需求,這類型的資訊在網路上很少;若是哪天要整理的內容變很多時,手動就感覺特別的沒有效率。 我絕對不會承認官方文件看好久還是看不懂