PDA

View Full Version : سوال: تعریف رشته به صورت OR



csharpdoost
دوشنبه 29 شهریور 1389, 18:30 عصر
دوستان سلام
میخوام وقتی این رشته ها رو برنامه خوند عدد مثلا 6 را به یک متغیر اضافه کند:
"M";"*M";"E";"MA";"EA",....
و وقتی این رشته ها رو خوند عدد مثلا 12 رو به متغیر اضافه کند:
"N","NA","N*","ME",...
با توجه به استفاده مکرر از این رشته ها می خوام اینها را در غالب یک متغیر رشته ای بیان کنم مثل این(گرچه از نظر ساختاری اشتباه است و برنامه خطا میگیرد):

string Mstr="M"|"*M"|"E"|"MA"|"EA
string Nstr="N"|"NA"|"N*"|"ME

به نظر شما راه ساده ای وجود دارد؟
شاید بگویید متدی تعریف کنم و ان رشته ها را یکبار در ان تعریف کنم و هر بار که برنامه رشته ای رو خوند به اون متد پاس بده و اگر تو اون متد بود عدد ثابتش رو برگردونه .
ولی من دنبال راه حل ساده تری هستم .
با تشکر

Reza_Yarahmadi
دوشنبه 29 شهریور 1389, 20:20 عصر
یه روش ساده میتونه این باشه که رشته های مورد نظرتون رو با "،" از هم جدا کنید و اول و آخر کل رشته رو هم "،" بذارید بعد بصورت زیر جستجو کنید

string Mstr=",M,*M,E,MA,EA,";
string Nstr=",N,NA,N*,ME,";

int a = 0;
string temp = "MA";
if(Mstr.IndexOf("," + temp + ",") != -1)
a += 6;
else if(Nstr.IndexOf("," + temp + ",") != -1)
a += 12;