PDA

View Full Version : سوال: جستجو در ArrayList



Marzieh-H
دوشنبه 11 مرداد 1389, 19:54 عصر
سلام دوستان
من Arraylist ای دارم که آبجکتهایی از یه کلاسی که خودم ساختم دارم حالا میخوام یه آیتم مشخصی رو تو این Arraylist پیدا کنم که البته میدونم باید از Contains استفاده کنم و بعد در ضورت وجود چنین آیتمی، دیگر آیتمهای این Arraylist رو در TextBoxهایی نمایش بدم حالا باید چیکار کنم؟؟؟

cardano7
دوشنبه 11 مرداد 1389, 20:09 عصر
سلام

... در TextBoxهایی نمایش بدمنمی دونم دارید چه کار می کنید ولی فکر می کنم بهتره از listbox یا listview استفاده کنید.

حالا باید چیکار کنم؟؟؟ نمی دونم سر کدوم قسمتش مشکل دارید. لطفا مسئله رو بازتر کنید.

FastCode
دوشنبه 11 مرداد 1389, 20:19 عصر
اولاً که چون یک کلاسه بهتره که از List<T> استفاده کنید.

Contains
خیر.
باید از FindFirst استفاده کنید.
و یه predicate بهش بدید.

Marzieh-H
دوشنبه 11 مرداد 1389, 20:50 عصر
سلام
نمی دونم دارید چه کار می کنید ولی فکر می کنم بهتره از listbox یا listview استفاده کنید.
نمی دونم سر کدوم قسمتش مشکل دارید. لطفا مسئله رو بازتر کنید.
نه حتما باید تو TextBox نمایش داده بشه .مشکلم تو پیدا کردن اون آیتم های بعدی و نمایش اونا تو TextBoxهاست.

exlord
دوشنبه 11 مرداد 1389, 22:40 عصر
MyClass c = null;
try
{
c = myArrayList.Cast<MyClass>().First(n => n.MyProperty == 10);
}catch{}
if (c != null)
{
for (int i = myArrayList.IndexOf(c); i < myArrayList.Count; i++)
{
//get a[i]
}
}

parva-88
دوشنبه 11 مرداد 1389, 22:57 عصر
ببین مرضیه برای راحتی کار از یه foreach استفاده کن و بعد توش شرطو بنویس و بعد هم
textbox1.text+=class.obj; موفق باشی

Marzieh-H
دوشنبه 11 مرداد 1389, 23:26 عصر
ببین مرضیه برای راحتی کار از یه foreach استفاده کن و بعد توش شرطو بنویس و بعد هم
textbox1.text+=class.obj; موفق باشی
پروا جان بیشتر توضیح بده متوجه نمیشم.

moharrami
دوشنبه 11 مرداد 1389, 23:48 عصر
سلام دوستان
من Arraylist ای دارم که آبجکتهایی از یه کلاسی که خودم ساختم دارم حالا میخوام یه آیتم مشخصی رو تو این Arraylist پیدا کنم که البته میدونم باید از Contains استفاده کنم و بعد در ضورت وجود چنین آیتمی، دیگر آیتمهای این Arraylist رو در TextBoxهایی نمایش بدم حالا باید چیکار کنم؟؟؟

اگه منظورتون رو متوجه شده باشم اعضای لیست رو میخوایید بجز آیتم مورد نظر. برای اینکار کد زیر رو امتحان کنید :


var tmp=arrrayList.cast<yourClass>();
var query=tmp.where(i=>i!=object);


در این کد منظور از object آیتمی هست که شما نمی خواهید در لیست تون باشه

Marzieh-H
سه شنبه 12 مرداد 1389, 00:35 صبح
اگه منظورتون رو متوجه شده باشم اعضای لیست رو میخوایید بجز آیتم مورد نظر. برای اینکار کد زیر رو امتحان کنید :


var tmp=arrrayList.cast<yourClass>();
var query=tmp.where(i=>i!=object);


در این کد منظور از object آیتمی هست که شما نمی خواهید در لیست تون باشه

بذارید بیشتر توضیح بدم: من یه کلاس book دارم یک booksArray که تو یه کلاس دیگه ای مثل کلاس آموزش تعریف شده حالا تو یه فرم با کلیک روی یه دکمه باید شی از کلاس book ساخته بشه و تو booksArray ذخیره بشه که برای این کار من یه شی از کلاس book رو ساختم و اطلاغات رو از TextBoxها میگیرم وتوی booksArray یه شی از کلاس آموزش که دارم ذخیره میکنم حالا میخوام با یه دکمه دیگه با دادن کد یه کتابی که تو booksArray دارم (با متدی چک می کنم) بقیه اصلاعات کتاب رو تو TextBox ها نمایش بدم که اینجا رو نمیدونم چیکار کنم لطفا واضح تر راهنمایی کنید .....

اَرژنگ
سه شنبه 12 مرداد 1389, 03:02 صبح
بذارید بیشتر توضیح بدم: من یه کلاس book دارم یک booksArray که تو یه کلاس دیگه ای مثل کلاس آموزش تعریف شده حالا تو یه فرم با کلیک روی یه دکمه باید شی از کلاس book ساخته بشه و تو booksArray ذخیره بشه که برای این کار من یه شی از کلاس book رو ساختم و اطلاغات رو از TextBoxها میگیرم وتوی booksArray یه شی از کلاس آموزش که دارم ذخیره میکنم حالا میخوام با یه دکمه دیگه با دادن کد یه کتابی که تو booksArray دارم (با متدی چک می کنم) بقیه اصلاعات کتاب رو تو TextBox ها نمایش بدم که اینجا رو نمیدونم چیکار کنم لطفا واضح تر راهنمایی کنید .....
توضیحتان گیج کننده است، دوباره ساده تر توضیح بدید (اینکه چکار میکنید مهم نیست، اینکه چی هست و چکاری لازم است که انجام بشد را توضیح بدید).
تا جایی که من فهمیدم یک آرایه از کتاب دارید و میخواهید که در کنترلهایی با داتا بایندینگ نمیاشش بدید؟ اگر که نه توضیح ساده تر بدید یا هم کد بفرستید.

exlord
سه شنبه 12 مرداد 1389, 08:26 صبح
سلام دوستان
من Arraylist ای دارم که آبجکتهایی از یه کلاسی که خودم ساختم دارم حالا میخوام یه آیتم مشخصی رو تو این Arraylist پیدا کنم که البته میدونم باید از Contains استفاده کنم و بعد در ضورت وجود چنین آیتمی، دیگر آیتمهای این Arraylist رو در TextBoxهایی نمایش بدم حالا باید چیکار کنم؟؟؟


بذارید بیشتر توضیح بدم: من یه کلاس book دارم یک booksArray که تو یه کلاس دیگه ای مثل کلاس آموزش تعریف شده حالا تو یه فرم با کلیک روی یه دکمه باید شی از کلاس book ساخته بشه و تو booksArray ذخیره بشه که برای این کار من یه شی از کلاس book رو ساختم و اطلاغات رو از TextBoxها میگیرم وتوی booksArray یه شی از کلاس آموزش که دارم ذخیره میکنم حالا میخوام با یه دکمه دیگه با دادن کد یه کتابی که تو booksArray دارم (با متدی چک می کنم) بقیه اصلاعات کتاب رو تو TextBox ها نمایش بدم که اینجا رو نمیدونم چیکار کنم لطفا واضح تر راهنمایی کنید .....

این 2 تا خیلی با هم فرق دارن ...

ArrayList array = new ArrayList();

Book b = array.Cast<Book>().First(n => n.CodeKetab == TextBoxCodeKetab.Text);
textboxName.Text = b.name;
textboxAuther.Text = b.Auther;

Marzieh-H
سه شنبه 12 مرداد 1389, 09:20 صبح
تا جایی که من فهمیدم یک آرایه از کتاب دارید و میخواهید که در کنترلهایی با داتا بایندینگ نمیاشش بدید؟
تقریبا منظورم همینه .

اَرژنگ
سه شنبه 12 مرداد 1389, 10:10 صبح
تقریبا منظورم همینه .
اگر از بایندینگ سورس استفاده میکنید مشکلی نیست، داتاسورس بایندینگ سورس را به عنصر آرایه ربط بدید.
قبلاً مثال در این زمینه فرستاده شده بود.