ورود

نسخه کامل مشاهده نسخه کامل : جستجو در arraylist



gipsi
22-06-2009, 18:11
سلام.اگه مثلا آرايه اي به صورت زير داشته باشيم.


Arraylist("name",age,"birthday")
حالا اگه بخوام تمامي age هاي توي آرايه رو كه از نوع int هستند پيدا كنم و تو يك متغير خاص بريزم بايد چي كار كنم.
ممنون

_H2_
22-06-2009, 22:23
سلام
منظور شما چندان مشخص نیست و کدتان هم بی معنی است و صحیح نیست...
اگر فرض کنیم یک ArrayList مخلوط دارید و میخواهید فقط Integre های آن را جدا کنید میتوانید از کدهای زیر استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
22-06-2009, 22:37
سلام مجدد
گمانم منظورتان #C بوده ... بحرحال این هم #C معادل کدهای فوق...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

gipsi
23-06-2009, 06:16
ممنون.درسته سئوالم نامفهوم بود .ولي كد ننوشتم فقط مثال زدم كه آرايه اي دارم كه دائما مقادير (نام، سن،وتاريخ تولد) ميگيره
در واقع كل مطلب اينه كه من از اطلاعات آيتم هاي يك ليست باكس مقدار (نام، سن،وتاريخ تولد ) رو جدا مي كنم و در يك struct ميريزم و نهايتا همچين كاري ميكنم.




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تا اينجا كه درسته؟
حالا مي خوام با همون حلقه foreach كه شما گفتي متغير سن رو از آرايه پيدا كنم و مجموعشو تو يك متغير sum بريزم و نهايتا ميانگين سن بگيرم.
ولي جواب نمي ده.
#c

_H2_
23-06-2009, 11:51
سلام
اگر فرض کنیم یک struct دارید که شامل نام و سن و... است، طبیعتاً شما فقط باید فیلد مورد نظر را جمع کنید ...
ضمناً بهتر است به جای استفاده از collection های عادی بدون type مثل arraylist از مجموعه های نوع پذیر Generic استفاده کنید.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در نهایت باید یادآوری کنم که گرفتن و نگه داری "سن" چندان کار منطقی نیست، چون سن اصولاً عدد پایداری نیست و ارزش ذخیره سازی ندارد، به جای آن شما باید "تاریخ تولد" را گرفته و ذخیره کنید و بر اساس تاریخ تولد محاسبات خود را پی ریزی کنید، چون برخلاف سن، تاریخ تولد یک عدد ثابت و مشخص و پایدار است.

موفق باشید

gipsi
09-07-2009, 15:58
سلام مجدد.
اگر بخوام در يك arraylist يا list كه با struct مقدار مي گيرن.(مثل مثال بالا) يك مقدار خاصي رو جستجو كنم.مثلا دنبال اسم hamid بگردم بايد چي كار كنم؟
با Array.Find هر كاري كردم نشد.

mahdi7s
09-07-2009, 16:35
سلام

شما می تونید از query زیر استفاده کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

یا با استفاده از همون حلقه ی foreach


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

bad_boy_2007
09-07-2009, 17:15
سلام مجدد.
اگر بخوام در يك arraylist يا list كه با struct مقدار مي گيرن.(مثل مثال بالا) يك مقدار خاصي رو جستجو كنم.مثلا دنبال اسم hamid بگردم بايد چي كار كنم؟
با Array.Find هر كاري كردم نشد.

راحت تری از LINQ استفاده کنی


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

gipsi
10-07-2009, 09:15
ممنون.بله اين راه ها جواب مي دن. ولي اينا يعني اينكه اينجا<>Array.Find, جواب نميده؟و فقط وقتي عناصر يك ليست معمولي هستند ( struct نيستند ) درست جواب مي ده؟

_H2_
10-07-2009, 10:31
سلام

ولي اينا يعني اينكه اينجا<>Array.Find, جواب نميده؟و فقط وقتي عناصر يك ليست معمولي هستند
شما میتوانید به سادگی از Array.Find هم استفاده کنید، اگر دست استفاده کنید همواره جواب خواهد داد و محدودیت و شرطی خاص وجود ندارد...
اگر جچواب نگرفته اید حتماً جایی را اشتباه کرده اید.
فقط طبیعتاً ورودی شما باید آرایه (Array) باشد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید