View Full Version : حرفه ای: linked list array
arbab333
دوشنبه 13 خرداد 1392, 19:21 عصر
سلام.
من یه آرایه ای از لیست پیوندی تعریف کردم و حالا میخام یه عنصر از وسط لیستو حذف کنم. چجوری میشه این کارو کرد؟؟؟؟؟
نمونه ای از کد من این شکلیه.
LinkedList<DataTable>[] clusters = new LinkedList<DataTable>[1000];
clusters[0].AddLast(data table11);
clusters[1].AddLast(data table12);
clusters[2].AddLast(data table13);
clusters[3].AddLast(data table14);
حالا من میخام clusters[2] رو حذف کنم. چجوری میتونم این کارو بکنم؟؟؟؟؟
tooraj_azizi_1035
دوشنبه 13 خرداد 1392, 20:55 عصر
شما آرایه ای از لیست پیوندی تعریف کردید یعنی هر خانه از آرایه شما خودش یک لیست پیوندی است.
حذف clusters[2] به معنی حذف خانه ای از آرایه است!
اگر قصدتان حذف گره ای خاص از یک لیست پیوندی خاص است می تونید از متد Remove استفاده کنید:
clusters[2].Remove(data table13);
احتمالاً اشتباه کار کردید، اگر علامت [] رو از تعریف clusters حذف کنید شاید اوضاع کمی مرتب تر بشه:
LinkedList<DataTable> clusters = new LinkedList<DataTable>();
clusters.AddLast(data table11);
clusters.AddLast(data table12);
clusters.AddLast(data table13);
clusters.AddLast(data table14);
clusters.Remove(data table12);
arbab333
دوشنبه 13 خرداد 1392, 21:01 عصر
شما آرایه ای از لیست پیوندی تعریف کردید یعنی هر خانه از آرایه شما خودش یک لیست پیوندی است.
حذف clusters[2] به معنی حذف خانه ای از آرایه است!
اگر قصدتان حذف گره ای خاص از یک لیست پیوندی خاص است می تونید از متد Remove استفاده کنید:
clusters[2].Remove(data table13);
متاسفانه من دقیقن میخام یه عنصر آرایه رو حذف کنم. هیچ راهی واسه این کار وجود نداره؟؟؟
tooraj_azizi_1035
دوشنبه 13 خرداد 1392, 21:08 عصر
می تونی با List کار کنی. اونم متد Remove داره به همون شکل می تونی استفاده کنی.
تست نکردم:
List<LinkedList<DataTable>> clusters = new List<LinkedList<DataTable>>(1000);
clusters.Add(new LinkedList<DataTable>());
clusters[0].AddLast(data table11);
clusters.Add(new LinkedList<DataTable>());
clusters[1].AddLast(data table12);
clusters.Add(new LinkedList<DataTable>());
clusters[2].AddLast(data table13);
clusters.Add(new LinkedList<DataTable>());
clusters[3].AddLast(data table14);
clusters.Remove( clusters[2]);
arbab333
سه شنبه 14 خرداد 1392, 12:19 عصر
می تونی با List کار کنی. اونم متد Remove داره به همون شکل می تونی استفاده کنی.
تست نکردم:
List<LinkedList<DataTable>> clusters = new List<LinkedList<DataTable>>(1000);
clusters.Add(new LinkedList<DataTable>());
clusters[0].AddLast(data table11);
clusters.Add(new LinkedList<DataTable>());
clusters[1].AddLast(data table12);
clusters.Add(new LinkedList<DataTable>());
clusters[2].AddLast(data table13);
clusters.Add(new LinkedList<DataTable>());
clusters[3].AddLast(data table14);
clusters.Remove( clusters[2]);
خیلییییی ممنون عزیز.مشکلم با این روش حل شد. واقعن ازتون ممنونم.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.