בעיה בחיפוש כשבחלק מהאובייקטים המאפיין ריק
-
כאשר אני מבצע חיפוש ע"פ מס' טלפון ולחלק מהאנשים ברשימה לא מוזן להם מס' טלפון, אז אני מקבל שגיאה:
"ההפניה לאובייקט לא הוגדרה למופע של אובייקט", כנראה בגלל שלא הוזן למאפיין הזה שום ערך הוא מוגדר כnull ולכן זה זורק לי את השגיאה הנ"ל.
כיצד אפשר להתגבר על כך, כדי שהוא יציג לי את תוצאות החיפוש מתוך האובייקטים שכן הוזן להם מס' טלפון?
תודה רבה!
הקוד הוא:if(!string.IsNullOrEmpty(telSearch.Text)) { donorFiltered = donorFiltered.Where(x => x.Tel.Contains(telSearch.Text)); }
פורסם במקור בפורום CODE613 ב07/09/2015 21:32 (+03:00)
-
לי זה מאוד הפריע בפרוייקט שלי עד שעמדתי וכתבתי מתודת הרחבה משלי...
public static bool Contains2(this string source, string toCheck) { if (string.IsNullOrEmpty(toCheck)) return true; return source != null && source.IndexOf(toCheck, StringComparison.InvariantCultureIgnoreCase) >= 0 ; }
פורסם במקור בפורום CODE613 ב07/09/2015 22:55 (+03:00)
-
תודה רבה זה עובד מצויין!!
רק לא בדיוק הבנתי איך זה עובד..
בשורה הראשונה אתה בודק האם המחרוזת ששלחתי לחיפוש אינה ריקה, ואם כן אתה מחזיר true. זה כדי להתגבר על משתמש שיחפש בטעות בלי להזין שום ערך? ומה בדיוק מחזיר הטרו?? לכאו' שום דבר ובאותה מידה יכלת להחזיר false, לא?
בשורה השניה, מה זה StringComparison.InvariantCultureIgnoreCase?
תודה רבה רבה!פורסם במקור בפורום CODE613 ב08/09/2015 12:17 (+03:00)
-
נגיד הtelSearch.Text ריק. אז אני מחזיר חיובי - כי זה נחשב מבחינתי התאמה (האם המחרוזת "XXX" מכילה ""? לטעמי/לצרכיי כן). ייתכן שאצלך לא.
InvariantCultureIgnoreCase זה אומר לא להיות רגיש לאותיות גדולות קטנות - בלועזית (בתוכנה שלי בה הייתי צריך את זה השמות לועזיים).פורסם במקור בפורום CODE613 ב08/09/2015 12:46 (+03:00)