ฉันต้องการล้างรายการ ต้องทำอย่างไร?
.net empty listหน้านี้จะปรากฏขึ้นก่อน MSDN!
ฉันต้องการล้างรายการ ต้องทำอย่างไร?
.net empty listหน้านี้จะปรากฏขึ้นก่อน MSDN!
คำตอบ:
มันง่ายมาก:
myList.Clear();
List<>, หรือการดำเนินการArrayList IList;)
List<T>.Clearล้างข้อมูลอ้างอิงทั้งหมดอย่างถูกต้องซึ่งทำให้ GC สามารถล้างการจัดสรรได้เมื่อจำเป็น new List<T>ไม่ทำเช่นนี้และไม่เหมาะสมในทุกสถานการณ์
ถ้าตาม "รายการ" คุณหมายถึง a List<T>แล้วเมธอดClearคือสิ่งที่คุณต้องการ:
List<string> list = ...;
...
list.Clear();
คุณควรทำความคุ้นเคยกับการค้นหาเอกสาร MSDN เกี่ยวกับสิ่งเหล่านี้
ต่อไปนี้เป็นวิธีค้นหาเอกสารเกี่ยวกับบิตประเภทต่างๆอย่างรวดเร็ว:
List<T>คลาสเอง ( นี่คือจุดที่คุณควรเริ่ม )คำค้นหาของ Google ทั้งหมดนี้แสดงกลุ่มของลิงก์ แต่โดยทั่วไปแล้วคุณต้องการลิงก์แรกที่ Google ให้คุณในแต่ละกรณี
เพื่อให้คำตอบอื่น (ใครต้องการคำตอบที่เท่ากัน 5 ข้อ):
list.Add(5);
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now
โปรดทราบว่าการอ้างอิงอื่น ๆ ทั้งหมดในรายการเก่ายังไม่ถูกล้าง (ขึ้นอยู่กับสถานการณ์นี่อาจเป็นสิ่งที่คุณต้องการ) นอกจากนี้ในแง่ของประสิทธิภาพมักจะช้ากว่าเล็กน้อย
listมีการอ้างอิงใหม่ ดังนั้นอย่าใช้สิ่งนั้นหากคุณใช้การล็อกรายการนั้น
ตัวเลือก # 1: ใช้ฟังก์ชันClear ()เพื่อล้างList<T>และรักษาความจุไว้
การนับถูกตั้งค่าเป็น 0 และการอ้างอิงไปยังวัตถุอื่น ๆ จากองค์ประกอบของคอลเล็กชันจะถูกปล่อยออกมาด้วย
ความจุยังคงไม่เปลี่ยนแปลง
ตัวเลือก # 2 - ใช้ฟังก์ชันClear ()และTrimExcess ()เพื่อตั้งค่าList<T>เป็นสถานะเริ่มต้น
การนับถูกตั้งค่าเป็น 0 และการอ้างอิงไปยังวัตถุอื่น ๆ จากองค์ประกอบของคอลเล็กชันจะถูกปล่อยออกมาด้วย
การตัดแต่งค่าว่าง
List<T>จะตั้งค่าความจุของรายการเป็นความจุเริ่มต้น
คำจำกัดความ
Count = จำนวนองค์ประกอบที่มีอยู่จริงในไฟล์List<T>
ความจุ = จำนวนองค์ประกอบทั้งหมดที่โครงสร้างข้อมูลภายในสามารถเก็บไว้ได้โดยไม่ต้องปรับขนาด
ล้าง () เท่านั้น
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Compsognathus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Deinonychus");
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
dinosaurs.Clear();
Console.WriteLine("\nClear()");
Console.WriteLine("\nCount: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Clear () และ TrimExcess ()
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Triceratops");
dinosaurs.Add("Stegosaurus");
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
dinosaurs.Clear();
dinosaurs.TrimExcess();
Console.WriteLine("\nClear() and TrimExcess()");
Console.WriteLine("\nCount: {0}", dinosaurs.Count);
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
คุณสามารถทำได้
var list = new List<string>();
list.Clear();
คุณสามารถใช้วิธีการล้าง
List<string> test = new List<string>();
test.Clear();
คุณต้องมีฟังก์ชัน Clear () ในรายการเช่นนั้น
List<object> myList = new List<object>();
myList.Add(new object()); // Add something to the list
myList.Clear() // Our list is now empty