หากคุณไม่ทราบขนาดของอาร์เรย์หรือมีอาร์เรย์ที่มีอยู่แล้วที่คุณกำลังเพิ่ม คุณสามารถทำสิ่งนี้ได้สองวิธี แรกคือการใช้ทั่วไปList<T>
: การทำเช่นนี้คุณจะต้องการแปลงอาร์เรย์เป็นvar termsList = terms.ToList();
และใช้วิธีการเพิ่ม จากนั้นเมื่อเสร็จแล้วใช้var terms = termsList.ToArray();
วิธีการในการแปลงกลับเป็นอาร์เรย์
var terms = default(int[]);
var termsList = terms == null ? new List<int>() : terms.ToList();
for(var i = 0; i < 400; i++)
termsList.Add(i);
terms = termsList.ToArray();
วิธีที่สองคือการปรับขนาดอาร์เรย์ปัจจุบัน:
var terms = default(int[]);
for(var i = 0; i < 400; i++)
{
if(terms == null)
terms = new int[1];
else
Array.Resize<int>(ref terms, terms.Length + 1);
terms[terms.Length - 1] = i;
}
หากคุณใช้. NET 3.5 Array.Add(...);
ทั้งสองอย่างนี้จะช่วยให้คุณทำแบบไดนามิก List<T>
หากคุณจะเพิ่มจำนวนมากของรายการจากนั้นเพียงแค่ใช้ หากเป็นเพียงสองสามรายการก็จะมีประสิทธิภาพที่ดีขึ้นในการปรับขนาดอาร์เรย์ นี่เป็นเพราะคุณใช้เวลามากในการสร้างList<T>
วัตถุ
เวลา ในเห็บ:
3 รายการ
เวลาปรับขนาดอาร์เรย์: 6
รายการเพิ่มเวลา: 16
400 รายการ
เวลาในการปรับขนาดอาร์เรย์: 305
รายการเพิ่มเวลา: 20