瀏覽代碼

Performance improvement to CoreTable.ToList/ToArray

Kenric Nugteren 1 年之前
父節點
當前提交
df76ed66e1
共有 1 個文件被更改,包括 16 次插入2 次删除
  1. 16 2
      InABox.Core/CoreTable/CoreTable.cs

+ 16 - 2
InABox.Core/CoreTable/CoreTable.cs

@@ -293,9 +293,23 @@ namespace InABox.Core
         public IEnumerable<T> ToObjects<T>() where T : BaseObject, new()
             => Rows.Select(x => x.ToObject<T>());
         public List<T> ToList<T>() where T : BaseObject, new()
-            => ToObjects<T>().ToList();
+        {
+            var list = new List<T>(Rows.Count);
+            for(int i = 0; i < Rows.Count; ++i)
+            {
+                list.Add(Rows[i].ToObject<T>());
+            }
+            return list;
+        }
         public T[] ToArray<T>() where T : BaseObject, new()
-            => ToObjects<T>().ToArray();
+        {
+            var arr = new T[Rows.Count];
+            for(int i = 0; i < Rows.Count; ++i)
+            {
+                arr[i] = Rows[i].ToObject<T>();
+            }
+            return arr;
+        }
 
         #endregion