PDA

View Full Version : سوال: مشکل در تبدیل string به int



hercool
دوشنبه 07 مرداد 1392, 18:20 عصر
سلام دوستان
یه مشکل دارم تو تبدیل string به int هست
مشکل اینه که تو بعضی از ایندکس های ارایم مقدار null دارم که وقتی می خوام اونا رو تغییر بدم دچار مشکل میشم کد رو براتون میزارم

int te;
for (te = 0; te < boxval.Length; te++) { if (boxval[te] == null) { boxval[te] = "0"; } Convert.ToString(boxval[te]); }
for (te = 0; te < boxval.Length; te++) { Int32.Parse (boxval[te]); }

مقادیر null به صفر تبدیل میشه اما نمی تونم string رو به int تبدیل کنم

MiniMicro
دوشنبه 07 مرداد 1392, 18:39 عصر
سلام دوستان
یه مشکل دارم تو تبدیل string به int هست
مشکل اینه که تو بعضی از ایندکس های ارایم مقدار null دارم که وقتی می خوام اونا رو تغییر بدم دچار مشکل میشم کد رو براتون میزارم

int te;
for (te = 0; te < boxval.Length; te++) { if (boxval[te] == null) { boxval[te] = "0"; } Convert.ToString(boxval[te]); }
for (te = 0; te < boxval.Length; te++) { Int32.Parse (boxval[te]); }

مقادیر null به صفر تبدیل میشه اما نمی تونم string رو به int تبدیل کنم

خوب دوست عزیز این طور که من متوجه شدم آرایه شما از نوع String هست و وقتی که شما در حلقه اول مقادیر Null رو بررسی میکنید و اگر Null بود تبدیل به 0 میشه و دوباره با دستور Convert.ToString(boxval[te]); عناصر آرایه ات دوباره در حالی که رشته ای هستند به رشته تبدیل میشوند و در حلقه دوم هم عناصر آرایه ای که از نوع رشته ای هست رو تبدیل به int میکنی و دوباره تو آرایه به صورت رشته ذخیره میشه،میتونی یه آرایه از نوع int تعریف کنی و در حلقه دوم عناصر رو نظیر به نظیر تبدیل کنی و داخل اون آرایه قرار بدی.

موفق باشید.

hercool
دوشنبه 07 مرداد 1392, 18:47 عصر
اره همون وقت متوجه شدم هم با یدونه list از نوع int امتحان کردم و هم یه بار با ارایه ای از نوع int هم اما هیچکدوم جواب ندادن می تونی یدونه نمونه برام بزاری؟

Mahmoud.Afrad
دوشنبه 07 مرداد 1392, 21:55 عصر
الان این تبدیلات int به string و بالعکس کجا قراره ذخیره بشه. همینطوری رو هوا که نمیشه!
در ضمن به جای این همه زحمت از Convert.ToInt32(...) استفاده کن خودش null رو به 0 تبدیل میکنه ولی بازم باید نتایج تبدیل یه جایی ذخیره بشه.

tooraj_azizi_1035
دوشنبه 07 مرداد 1392, 22:04 عصر
از Int.TryParse استفاده کن:


int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}