PDA

View Full Version : گذاشتن فیلتر بر روی foreach



hamedre81
جمعه 28 مهر 1391, 23:36 عصر
سلام

من می خوام با استفاده از حلقه foreach فقط فایل های که با پسوند خاصی هستند داخل لیست باکس نمایش داده بشن ! آیا چنین کاری ممکن هست؟

Y_Safaiee
شنبه 29 مهر 1391, 00:06 صبح
با سلام خدمت شما دوست عزیز

راحت ترین کد ممکن اینه :



listBox1.Items.Clear();
string[] files = Directory.GetFiles(@"d:\");
foreach (string str in files)
{
if (Path.GetExtension(str) == ".txt") listBox1.Items.Add(str);
}


تایع کتابخانه ای زیر رو هم Using کن :


using System.IO;


موفق باشی
بایت بایت

mmd2009
شنبه 29 مهر 1391, 01:46 صبح
با سلام

اگر میخوایید خود حلقه foreach رو فیلتر کنید میتونید به این شکل عمل کنید :


foreach (string str in Directory.GetFiles(@"d:\").Where(str => Path.GetExtension(str) == ".pdf"))
{
listBox1.Items.Add(str);
}


اگر هم دوست نداری حلقه داشته باشی کافیه بدین شکل عمل بکنی :


listBox1.DataSource = Directory.GetFiles(@"d:\").Where(str => Path.GetExtension(str) == ".pdf").ToList();


موفق باشید

mehdi.mousavi
شنبه 29 مهر 1391, 05:40 صبح
سلام.
نیازی به گرفتن کلیه فایل ها در شاخه d:\ و سپس فیلتر کردن نتایج نیست. متود GetFiles،
overload های دیگه ای نیز داره که برای این کار استفاده میشه:

foreach (string filename in Directory.GetFiles(@"d:\", "*.pdf"))
{
}


موفق باشید.