PDA

View Full Version : سوال: استفاده از ساختار در صف



bargesabz
پنج شنبه 10 مرداد 1387, 00:40 صبح
بازم سلام

من یه struct دارم




struct stabel
{
public string name;
public string kword;
}





می خوام یه صف داشته باشم با ساختار struct بالا
ممنون میشم اگه نحوه معرفی و ارتباط این صف رو با ساختار بهم بگید
خیلی خیلی فوری و ضروریه

Sajjad.Aghapour
پنج شنبه 10 مرداد 1387, 01:15 صبح
Queue q = newQueue();
.
برای اضافه کردن//
.
stabel obj = new stabel();
q.Enqueue(obj);
.
برای برداشتن//
.
stabel s = (stabel)q.Dequeue();

molana alavi
پنج شنبه 10 مرداد 1387, 01:18 صبح
یه برنامه کوچیک برات نوشتم که تو فایل ضمیمه هستش
این برنامه آیتم ها رو از ورودی می گیره و در صف قرار می ده و همچنین در یک لیست باکس هم نشون می ده
و همچین حذف هم می کنه
امیدوارم کمکی بکونه
موفق باشی

bargesabz
پنج شنبه 10 مرداد 1387, 09:36 صبح
مولانای عزیز سیستم من با فایلهایی که از این سایت بگیرم مشکل داره نهwin rar آونها رو باز میکنه نه Adobe Reader تازه پسوند اونها phpاست و چون سیستمم ویروس داره فعلا folder option ندارم که پسوندشو عوض کنم.
من قبلا این مشکل رو با فایلهای جناب سجاد هم داشتم و ایشون رو هم دچار دردسر کردم. اگه ممکنه ، لطف کنی و برنامه رو همین جا بذاری تا بتونم ببینم.

bargesabz
پنج شنبه 10 مرداد 1387, 10:30 صبح
پسر خاله برای استفاده از صف لازمه که چیری رو به قسمت usingاضافه کنیم؟
چون برای من errorمیده و میگه



Error 5 Using the generic type 'System.Collections.Generic.Queue<T>' requires '1' type






من می خوام


'System.Collections.Generic.Queue<T>'
رو اضافه کنم اما بعد از Generic. منو(اینتلی ساینس) اون باز نمیشه که من بخوام queue رو بهش اضافه کنم
منظورش از آرگومان '1' چیه؟ممنون میشم اگه زودتر جوابمو بدید

Sajjad.Aghapour
پنج شنبه 10 مرداد 1387, 10:35 صبح
برای اضافه کردن NameSpace مربوط به یک کلاس کافیه اون رو تایپ،کرسر رو روی اون قرار بدید و Shift+Alt+F10 رو بزنید...


فکر نکنم مشکل چندانی وجود داشته باشه.هر چی که به صف اضافه می کنید بصورت یک آبجکت از sruct مورد نظر اضافه میشه.حال برای برداشتن از صف باید از casting استفاده کنید تا هر آبجکتی که از صف میاد بیرون به ماهیت واقعی خودش تبدیل بشه.
فرض کنید شما بصورت زیر آبجکت ها رو به صف اضافه می کنید....


Queue q = new Queue();

فرض کنید این کدها مربوط به هر رویدادی مثل کلیک باشه


stabel obj = new stabel();
obj.name = txtname.Text;
obj.kword = txtKWord.Text;
q.Enqueue(obj);

در این صورت شما یک صف از ساختارتون خواهید داشت.حالا هر زمان که خواستید آبجکتی از صف بردارید باید به صورت زیر عمل کنید.این کدها می تونه داخل رویداد یا داخل حلقه برای خالی کردن صف قرار بگیره...


stabel obj = (stabel)q.Dequeue();

به این صورت شما خواهید توانست به فیلدهای موجود در ساختار دسترسی داشته باشید و اونها رو کنترل کنید.


listBox1.Items.Add(obj.Name+" "+obj.kword);

?OK

Sajjad.Aghapour
پنج شنبه 10 مرداد 1387, 10:45 صبح
در مورد اون اروری که میده باید نوع اون رو مشخص کنید..


Queue<int> q = new Queue<int>();

maryamjoon
پنج شنبه 30 آبان 1387, 11:56 صبح
نتونستم فایل molana alavi رو باز کنم چکار کنم؟

Salar Ashgi
پنج شنبه 30 آبان 1387, 16:28 عصر
سلام ، اگر کلاس شما دارای سازنده پیش فرض ( Default Constructor ) باشد ، میتوانید مثل دستوری که

دوست عزیزمون sajjadlove گفتند ، صف ، پشته ، لیست پیوندی و ... از آن نوع را ایجاد کنید !!!

در مورد Struct هم فرق چندانی نمی کند !!!!