উত্তর:
আপনি এটি চেষ্টা করতে পারেন:
List<Int32> copy = new List<Int32>(original);
অথবা আপনি যদি লিনকের সাথে সি # 3 এবং .NET 3.5 ব্যবহার করেন তবে আপনি এটি করতে পারেন:
List<Int32> copy = original.ToList();
MyClass
পরিবর্তে প্রকারভেদ থাকলে Integer
, এটি কী আইটেমগুলি খুব কপি করে, বা কেবল তাদের রেফারেন্স করে?
lstStudentClass
একজন IEnumerable<StudentClass>
, এটা কাজ করবে। আপনি যদি অন্যথায় অভিজ্ঞতা পান তবে আপনাকে আরও তথ্য সরবরাহ করতে হবে।
ইতিমধ্যে বিদ্যমান অন্য তালিকায় একটি তালিকার বিষয়বস্তু যুক্ত করতে আপনি ব্যবহার করতে পারেন:
targetList.AddRange(sourceList);
আপনি যদি কেবল তালিকার একটি নতুন অনুলিপি তৈরি করতে চান তবে লাসির উত্তর দেখুন।
উপাদানগুলির তালিকার জন্য
List<string> lstTest = new List<string>();
lstTest.Add("test1");
lstTest.Add("test2");
lstTest.Add("test3");
lstTest.Add("test4");
lstTest.Add("test5");
lstTest.Add("test6");
আপনি যদি সমস্ত উপাদান কপি করতে চান
List<string> lstNew = new List<string>();
lstNew.AddRange(lstTest);
আপনি যদি প্রথম 3 টি উপাদান অনুলিপি করতে চান
List<string> lstNew = lstTest.GetRange(0, 3);
এই পদ্ধতিটি আপনার তালিকার একটি অনুলিপি তৈরি করবে তবে আপনার ধরণটি সিরিয়ালযোগ্য হওয়া উচিত।
ব্যবহার করুন:
List<Student> lstStudent = db.Students.Where(s => s.DOB < DateTime.Now).ToList().CopyList();
পদ্ধতি:
public static List<T> CopyList<T>(this List<T> lst)
{
List<T> lstCopy = new List<T>();
foreach (var item in lst)
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, item);
stream.Position = 0;
lstCopy.Add((T)formatter.Deserialize(stream));
}
}
return lstCopy;
}
ঠিক আছে এটি ভালভাবে কাজ করছে উপরের পরামর্শগুলি থেকে getRange () আমার পক্ষে যুক্তি হিসাবে একটি তালিকা নিয়ে কাজ করে না ... সুতরাং উপরের পোস্টগুলি থেকে কিছুটা মিষ্টি করা: (সবাইকে ধন্যবাদ :)
/* Where __strBuf is a string list used as a dumping ground for data */
public List < string > pullStrLst( )
{
List < string > lst;
lst = __strBuf.GetRange( 0, __strBuf.Count );
__strBuf.Clear( );
return( lst );
}