সি # তে কীভাবে একটি তালিকা খালি করবেন?


109

আমি একটি তালিকা খালি করতে চাই। কিভাবে যে কি?


34
এমএসডিএন পড়ার / অনুসন্ধান করার চেয়ে এখানে প্রতিক্রিয়ার সময়টি আরও দ্রুত
— ভি

27
এছাড়াও এমএসডিএন এর চেয়ে উত্তর এখন এখানে পাওয়া সহজ।
— ম্যাট কনোলি

14
এই সত্যটি উল্লেখ করার দরকার নেই যে আপনি যদি গুগল হন তবে .net empty listএই পৃষ্ঠাটি এমএসডিএন এর আগে উপস্থিত হবে !
— ভিভিয়ান নদী

2
@ ভি 4 ভেন্ডেটেটা 2018 তে, আমি পরামর্শ দেব যে স্ট্যাকওভারফ্লো সম্ভবত একটি বট তৈরি করা উচিত যা মন্তব্যগুলিতে এমএসডিএন ডকের লিঙ্কযুক্ত যে কোনও থ্রেডে আপনার মন্তব্য
— রাখবে

উত্তর:


234

এটি সত্যই সহজ:

myList.Clear();

3
... যদি তালিকা আসলে একটি হয় List<>, ArrayListবা কার্যকরী IList। ;)
— Lucero

3
@ লুসেরো কি এটি তালিকা হিসাবে বলা হয় যদি তা না হয়?
— শ্রীনিবাস রেড্ডি থাটিপার্থি

16
যেহেতু এটি গুগলে শীর্ষস্থানীয় এবং আমি এই সমস্যার মধ্যে চলে আসছি, আমি নীক্রো এটির মন্তব্য করছি। আপনি যদি একই লুপটি কোনও লুপে ব্যবহার করেন এবং পরিষ্কার ব্যবহার করেন, তালিকাটি প্রায়শই পুরানো বস্তুর রেফারেন্স রাখে - আমি প্রায়শই শেষ করে = নতুন লিসটি <T> () ব্যবহার করি; এটি তাত্ক্ষণিকভাবে সমস্ত পুরানো বরাদ্দ সাফ করার কারণে due যদিও বেশিরভাগ লোকের জন্য .C Clear (); যথেষ্ট হবে, তবে আপনি যদি একটি তালিকা অদ্ভুতভাবে অভিনয় করতে দেখেন - তবে = নতুন তালিকা <টি> () ব্যবহার করে দেখুন।
— চার্লস

1
আমি এটিকে দ্বিগুণ করতে চলেছি কারণ ২০২০ সালের মতো এখানে কিছু ভুল তথ্য সরবরাহ করা হয়েছে। List<T>.Clearযথাযথভাবে সমস্ত রেফারেন্স সাফ করে দেয় যা জিসি প্রয়োজনে বরাদ্দগুলি সাফ করার অনুমতি দেয়। new List<T>এটি করে না এবং কার্যকরভাবে সমস্ত দৃশ্যে অনুপযুক্ত
— জন

28

যদি "তালিকা" দ্বারা আপনি একটি বোঝায় List<T>, তবে সাফ পদ্ধতিটি আপনি যা চান তা হ'ল:

List<string> list = ...;
...
list.Clear();

এই বিষয়গুলিতে আপনার এমএসডিএন ডকুমেন্টেশন অনুসন্ধান করার অভ্যাসে প্রবেশ করা উচিত।

এই ধরণের বিভিন্ন বিটগুলিতে কীভাবে ডকুমেন্টেশনের জন্য দ্রুত অনুসন্ধান করবেন তা এখানে:

এই সমস্ত গুগল ক্যোয়ারীগুলি লিঙ্কগুলির একটি বান্ডিল তালিকাবদ্ধ করে, তবে সাধারণত আপনি প্রথমটি চান যা গুগল আপনাকে প্রতিটি ক্ষেত্রে দেয়।


"এই সমস্ত লিঙ্কগুলির একটি বান্ডিল তালিকাবদ্ধ করে, তবে সাধারণত আপনি প্রথমটি চান" " আপনি তালিকা খালি করতে না চাইলে?
— একটি সিভিএন

দুঃখিত, আমি আরও পরিষ্কার হওয়া উচিত ছিল। গুগল আপনাকে যে প্রথম লিঙ্ক দেয় তা আপনি সাধারণত চান "তালিক শ্রেণি" নয়।
— লাসে ভি কার্লসেন

9

বিকল্প উত্তর দেওয়ার জন্য (যার জন্য ৫ টি সমান উত্তর দরকার?):

list.Add(5); 
// list contains at least one element now
list = new List<int>();
// list in "list" is empty now

মনে রাখবেন যে পুরাতন তালিকার অন্যান্য সমস্ত উল্লেখগুলি সাফ করা হয়নি (পরিস্থিতির উপর নির্ভর করে এটি আপনি যা চান তা হতে পারে)। এছাড়াও, পারফরম্যান্সের ক্ষেত্রে, এটি সাধারণত কিছুটা ধীর হয়।


আপনি যাচাই করতে পারবেন যে সেটিং তালিকা = নতুন তালিকা <> () আসলে তালিকার চেয়ে ধীর। ক্লিয়ার () ;? এমএসডিএন অনুসারে (নীচের লিঙ্কে) তালিকা.ক্লেয়ার (); এটি একটি ও (এন) অপারেশন, এবং নতুন তালিকাটি ইনস্ট্যান্ট করাতে এর চেয়ে বেশি সময় লাগবে বলে আমি ভাবতে পারি না। msdn.microsoft.com/en-us/library/dwb5h52a(v=vs.110).aspx
— ক্রিস Tramel

5
ডটনেটপারলস একটি মানদণ্ড করেছিল এবং আবিষ্কার করেছে যে নতুন তালিকা <> আরও দ্রুত। dotnetperls.com/list-clear
— গেরহার্ড পাওয়েল

এক্সটেনশন দ্বারা, মনে রাখবেন যে listএকটি নতুন রেফারেন্স আছে। সুতরাং আপনি যদি সেই তালিকায় একটি লক ব্যবহার করেন তবে তা ব্যবহার করবেন না।
— jeromej

9

বিকল্প # 1: খালি করতে এবং এর ক্ষমতা ধরে রাখতে সাফ () ফাংশনটি ব্যবহার করুন List<T>।

  • গণনা 0 তে সেট করা আছে এবং সংগ্রহের উপাদানগুলি থেকে অন্যান্য বস্তুর রেফারেন্সও প্রকাশ করা হয়েছে।

  • সামর্থ্য অপরিবর্তিত রয়েছে।

বিকল্প # 2 - প্রারম্ভিক অবস্থায় সেট করতে সাফ () এবং ট্রিমএক্সসেস () ফাংশন ব্যবহার করুন List<T>।

  • গণনা 0 তে সেট করা আছে এবং সংগ্রহের উপাদানগুলি থেকে অন্যান্য বস্তুর রেফারেন্সও প্রকাশ করা হয়েছে।

  • একটি খালি ছাঁটাই List<T>তালিকার সক্ষমতা ডিফল্ট ক্ষমতায় সেট করে।

সংজ্ঞা

গণনা = আসলে যে উপাদানগুলির সংখ্যা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);

সাফ () এবং ট্রিমএক্সেসি ()

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);


5

আপনি পরিষ্কার পদ্ধতি ব্যবহার করতে পারেন

List<string> test = new List<string>();
test.Clear();

4

আপনার মতো তালিকায় ক্লিয়ার () ফাংশন প্রয়োজন।

List<object> myList = new List<object>();

myList.Add(new object()); // Add something to the list

myList.Clear() // Our list is now empty
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.