הכרנו את המילה השמורה let.
אחד הpitfallים הנפוצים הוא הדבר הבא, נניח שאנחנו רוצים לבצע שאילתא על דברים שהם לא null.
אפשר לכתוב את זה כך:
|
|
אלא שזה מתקמפל אבל לא כל כך עובד.
מה הבעיה? אם יש לנו nullים בתוך family, אנחנו נעוף. למה?
כזכור, הקוד מתקמפל לקוד הבא:
|
|
מה שחשוב זו השורה של הSelect.
מה הבעיה כאן? הדבר הראשון שמתבצע זה Select, ורק אחריו כל השאר. לכן אנחנו ניגשים תחילה עבור כל איש באוסף ומחשבים את לperson.Age.
רק אחר כך אנחנו מסננים את האנשים שהם לא null, אבל זה מאוחר מדי, ולכן נעוף בהתחלה.
איך נפתור את זה? אפשר בצורה הבאה:
|
|
בתחילה נסנן את כל האנשים שהם null, ורק אחר כך נחשב את כל שאר הדברים.
הערה:
כמובן נתתי פה דוגמה של משהו פשוט, שמסננים את האיברים עצמם, אבל אפשר ליפול בצורה דומה, גם בגישה לProperty של איבר. זה משהו נפוץ שראיתי..