PDA

View Full Version : حرفه ای: راه حل ویرایش فرمول از وسط(استفاده از صف یا پشته)



zare69
شنبه 13 مرداد 1397, 23:35 عصر
با سلام خدمت تمام دوستان
من یک مشکل دارم در ادامه شرح مسئله را می نویسم لطفا مطالعه کنید و اگر نظری دارید ارائه دهید:

من یک روش فرمول نویسی دارم به این ترتیب
(3*2)×7
هرکدام از اینها در یک خونه ارایه قرار میگیرند و ورود انها به صورت پشته ای است و همین صورت رشته به کاربر نمایش میدهد.
حالا اگر بخواهم قسمتی از فرمول از وسط را ویرایش کنم مجبورم از اخر تا جای که میخواهم ویرایش کنم پاک کنم.
حالاومیخواهم کاربر بتواند از وسط فرمول ویرایش کند و از هرجای خواست ویرایش کند سیستم متوجه شود.

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

ترتیب فرمول به این صورت است
(
56
+
2
)
×
7

ممنون میشوم راهنمایی کنید از چه روشی استفاده کنم

ShayanFiroozi
یک شنبه 18 شهریور 1397, 09:47 صبح
سلام ،

پاسخ شما بسیار ساده است.

استفاده از لیست ها ، سی شارپ لیست های فراوانی داره ، شما از ساده ترینشون استفاده کنین.

شما نباید از آرایه ها استفاده کنین ، در غیر اینصورت باید مدیریت کل اونا رو به عهده بگیرین ولی توی لیست ها سی شارپ تقریبا 90 درصد کارا رو انجام میده.

ضمنا اونا کاملا داینامیک هستن و نیازی نیست شما مدام سایزشونو تغییر بدین.

تعریف یک لیست ساده

List<string> _formula = new List<string>();

اضافه کردن آیتم های فرمول به لیست

_formula.Add("(");
_formula.Add("56");
_formula.Add("+");
_formula.Add("2");
_formula.Add(")");
_formula.Add("x");
_formula.Add("7");

حذف کردن آیتم های از لیست

_formula.Remove("x");
_formula.RemoveAt(0);

دسترسی به آیتم های لیست

text1.Text = _formula[0].ToString();

پاکسازی کل لیست

_formula.Clear();


پیمایش لیست

foreach (string _item in _formula) {
List1.Items.Add(_item);
}