-
ניסיתי לעשות שא' יהיה שווה 1, ב' = 2 וכו' עם הקוד של @dovid
אבל כל פעם הוא לוקח רק את הערך של האות שנלחצה אחרונה (כפול מספר הפעמים שהיא מופיעה), ולא את הערך של כל האותיות
שוב תודהint num = 0; private void textBox1_TextChanged(object sender, EventArgs e) { foreach (var group in textBox1.Text.ToLookup(c => c)) { if ($"{group.Key}" == "א") { num = group.Count(); textBox2.Text = num.ToString(); } if ($"{group.Key}" == "ב") { num = group.Count() * 2; textBox2.Text = num.ToString(); } if ($"{group.Key}" == "ג") { num = group.Count() * 3; textBox2.Text = num.ToString(); } } }
-
@נ-נח אתה צריך ללמוד תכנות. לא יעזור שאני אכתוב את הקוד במקומך, נכון?
אני יותר מרוצה לכוון אותך אבל לא יודע בדיוק איפה אתה אוחז.בקוד שכתבת הforeach זה לולאה, שועברת על התוצאות של textBox1.Text.ToLookup(c => c)
התוצאות הם בעצם כלל האותיות שיש בטקסט, אבל לא יותר מפעם לאות מסויימת.
למשל אבא, ייתן א,2 ב,1.
בקוד שלך הצבת בלולאה ערך בnum, וככה כל "סיבוב" של הלולאה הnum מקבל ערך חדש. במקרה של אבא בסיבוב הראשון הnum יהיה א2=2, וזה ייכנס לnum, אבל אז יבוא הסיבוב השני ובמקום להוסיף הוא יציב בnum את הערך של ב1=2 ושוב ערכו יהיה רק שניים.
לכן אתה צריך לכתוב לפני הבלוק של הforeach ניקוי של הnum כלומר num=0, ובתך הלולאה num = num + X כדי להוסיף את הערך לאט לאט ורק אחרי הבלוק של הforeach להציב את num בtextBox2.בקשר להשוואה $"{group.Key}" == "ב"
ניכר שהשתדלת כמה שפחות "להרוס" בקוד ששמתי... לא צריך את המרכאות: group.Key == "ב".
כמו"כ זה יכול להיות קוד ארוך וקשה לעריכה ולהבנה, עליך לחשוב על דרך שתקל על התרגום בין אות לערכה המספרי מאשר if ארוך ארוך. -
@dovid אמר בc# | חיפוש אות שנמצאת כמה פעמים בtextbox:
בקשר להשוואה $"{group.Key}" == "ב"
ניכר שהשתדלת כמה שפחות "להרוס" בקוד ששמתי... לא צריך את המרכאות: group.Key == "ב".לא עובד לי בלי המרכאות...
@dovid אמר בc# | חיפוש אות שנמצאת כמה פעמים בtextbox:
כמו"כ זה יכול להיות קוד ארוך וקשה לעריכה ולהבנה, עליך לחשוב על דרך שתקל על התרגום בין אות לערכה המספרי מאשר if ארוך ארוך.
עשיתי עם סוויץ'
switch ($"{group.Key}") { case "א": num += group.Count(); break; case "ב": num += group.Count() * 2; break; case "ג": num += group.Count() * 3; break; case "ד": num += group.Count() * 4; break; case "ה": num += group.Count() * 5; break; case "ו": num += group.Count() * 6; break; case "ז": num += group.Count() * 7; break; case "ח": num += group.Count() * 8; break; case "ט": num += group.Count() * 9; break; case "י": num += group.Count() * 10; break; case "כ": num += group.Count() * 20; break; case "ך": num += group.Count() * 20; break; case "ל": num += group.Count() * 30; break; case "מ": num += group.Count() * 40; break; case "ם": num += group.Count() * 40; break; case "נ": num += group.Count() * 50; break; case "ן": num += group.Count() * 50; break; case "ס": num += group.Count() * 60; break; case "ע": num += group.Count() * 70; break; case "פ": num += group.Count() * 80; break; case "ף": num += group.Count() * 80; break; case "צ": num += group.Count() * 90; break; case "ץ": num += group.Count() * 90; break; case "ק": num += group.Count() * 100; break; case "ר": num += group.Count() * 200; break; case "ש": num += group.Count() * 300; break; case "ת": num += group.Count() * 400; break; }
תודה ענקית!
-