PDA

View Full Version : مقایسه آرایه ای از بایت ها با استفاده از ساختار switch



PetekDincos
سه شنبه 05 اردیبهشت 1391, 22:57 عصر
با سلام
برای مقایسه آرایه ای از بایتها به و سیله ساختار switch چیکار می شه کرد من نمی خوام بنا به دلایلی از دستور if برای این کار استفاده کنم من مثلا چند تا آرایه ای از بایتها مثلا a,b,c,d,e دارم برای مقایسه اینها در یه ساختار switch چیکار می شه کرد
مثلا به این صورت


switch(a)
{
case b:
break;
case c:
break;
case d:
break;
}
چه طوری این کار انجام بدم با تشکر

PetekDincos
چهارشنبه 06 اردیبهشت 1391, 22:33 عصر
با سلام
از دوستان کسی نیست راهنمایی کنه با تشکر

Hossenbor
چهارشنبه 06 اردیبهشت 1391, 23:43 عصر
یک سوال داشتم دوسته عزیز آیا این آرایه ها طول مشخصی دارند و یک سوال دیگر بر چه اساسی اینها مقایسه میشوند

PetekDincos
پنج شنبه 07 اردیبهشت 1391, 09:09 صبح
با سلام
این آرایه ها طول شان 16 می باشه و آرایه ای از بایتها می باشند با تشکر

Hossenbor
پنج شنبه 07 اردیبهشت 1391, 09:23 صبح
یک سوال دیگه آیا ترتیب آرایه ها مهمه یا نه

Hossenbor
پنج شنبه 07 اردیبهشت 1391, 09:26 صبح
اگه جابتون بله هست از اون آرایه ها یک رشته بساز بعدش که آسونه درسته همینطور میشه؟

PetekDincos
پنج شنبه 07 اردیبهشت 1391, 12:13 عصر
با سلام
نمی خوام به صورت رشته تبدیل کنم و می خوام به همین صورت آرایه های بایتی باشه و دقیقا هم همینطوری که تو پست اول نوشتم نباشه مشکلی نیست اما می خوام چند تا لیست آرایه را با استفاده از ساختار switch با یکی از این آرایه ها مقایسه کنم اگر راهکاری ارائه بشه خیلی ممنون می شم با تشکر

Hossenbor
پنج شنبه 07 اردیبهشت 1391, 12:23 عصر
نه میدونید منظورم به صورت رشته جمع و جورتره و اون رشته هم فقط برای مقایسه هست چجور میگند این رشته نماینده اون آرایه ها هست منظورم اینجوریه

Hossenbor
پنج شنبه 07 اردیبهشت 1391, 12:29 عصر
میشه به زبان الگوریتم بگید شاید انجور شاید بتونم کمکتون کنم اگه امکان داره

PetekDincos
پنج شنبه 07 اردیبهشت 1391, 12:43 عصر
با سلام
ببینید من یه کلاس دارم به این صورت

public static class Keys
{
public static byte[] Key01 = new byte[16] { 0x83, 0x14, 0xF1, 0x12, 0xA8, 0xC9, 0xB8, 0x1B, 0xE2, 0xEB, 0x47, 0x0A, 0xF6, 0x1D, 0x86, 0x8D };
public static byte[] Key02 = new byte[16] { 0x88, 0xED, 0x00, 0xF4, 0xC4, 0xBC, 0x4C, 0x22, 0x3B, 0x92, 0x57, 0x98, 0x59, 0xFC, 0x0E, 0xDB };
public static byte[] Key03 = new byte[16] { 0x86, 0x06, 0xFD, 0x7B, 0x69, 0x16, 0x44, 0x62, 0xD3, 0x94, 0xF7, 0x47, 0x88, 0x9E, 0xE2, 0x8C };
public static byte[] Key04 = new byte[16] { 0x9B, 0x53, 0xF0, 0xBB, 0xA2, 0x86, 0xC5, 0x37, 0x86, 0x19, 0x8C, 0x9B, 0x6C, 0x6E, 0xB5, 0xEB };

}

و می خوام تو یه متد آرایه بایت ها را به صورت زیر مقایسه کنم

switch (Keys.Key01)
{
case Keys.Key02:
//statement 01
break;
case Keys.Key03:
//statement 02
break;
case Keys.Key04:
//statement 03:
break;
}

و نمی خوام ارایه هام رو به رشته تبدیل کنم آیا راهی وجود داره با تشکر

سوداگر
پنج شنبه 07 اردیبهشت 1391, 14:56 عصر
switch case only compare int , byte , short n char
سویچ کیس برای مقایسه آرایه ها درست نشده. در نهایت، حل این مشکلتون به همون if else ختم میشه.

PetekDincos
پنج شنبه 07 اردیبهشت 1391, 15:01 عصر
با سلام
من هم می دونم switch برای مقایسه این نوع ها می باشد اما می خواستم بدونم که نمی شه به یه شیوه ای این کار رو انجام داد دوستمون در پست قبلی گفتند اینها رو به صورت رشته در بیارم بعد عمل مقایسه رو انجام بدم می خواستم بدونم شیوه های دیگه ای نیز وجود داره با تشکر