PDA

View Full Version : سوال: جلوگیری از زباد شدن دستور if در برنامه در هنگام زیاد شدن شروط ترکیبی آن



mrmaleki
چهارشنبه 11 تیر 1393, 18:10 عصر
سلام
تو قطعه کد زبر من پروپرتی های استاتیک تعریف کردم که اگه هر کدام null نباشن برای هرکدام یک فرم خاصی از فایل ها رو به files تخصیص بده و برای مثلا چهار حالت اصلش چهار دستور if نوشتم
ولی اگه بخوام شرط های ترکیبی هم بنویسم اگه پروپرتی هام زیاد باشه تعداد شروط شرطی در حالت ترکیب کردن شرط ها خیلی زیاد میشه مثلا:

if (endText != null && startText != null)
{
}


راهی است که بتونم تعداد شرط ها رو تو حالت ترکیبی کم کنم؟؟؟


public static string startText;
public static string endText;
public static string ContainText;

try
{
if (ContainText != null)
{
files = root.GetFiles()
.Where(f => extensions.Contains(f.Extension.ToLower())
&& f.Name.Contains(ContainText))
.ToArray();
}
if(endText != null)
{
files = root.GetFiles()
.Where(f => extensions.Contains(f.Extension.ToLower())
&& f.Name.EndsWith(ContainText))
.ToArray();
}
if (startText != null)
{
files = root.GetFiles()
.Where(f => extensions.Contains(f.Extension.ToLower())
&& f.Name.StartsWith(ContainText))
.ToArray();
}
else
{
files = root.GetFiles()
.Where(f => extensions.Contains(f.Extension.ToLower()))
.ToArray();
}
}

Mahmoud.Afrad
چهارشنبه 11 تیر 1393, 18:59 عصر
اگر منظورت جستجوی پیشرفته هست، نیازی به شرط تو در تو نیست. با if های متوالی باید حلش کنی تا حالت and رو بوجود بیاری.
قبل از اولین شرط، root.GetFiles() را بریز توی files و در ifهات از files کوئری بگیر و دوباره نتیجه رو بریز توی files.