
Pizza עם Diameter, Slices, Toppings ו-Price. ב-Main נוצר אוסף של 100 פיצות עם ערכים אקראיים.from p in pizzas.where p.Diameter >= 25 && p.Slices >= 6.orderby p.Price, p.Toppings descending.select new עם Diameter, Slices, Toppings, Price ובנוסף Vat שמחושב כ-p.Price * 0.17m. האות m הופכת את הערך ל-decimal, שמתאים לכסף, כי Price הוא decimal.query.ToList() ואז foreach עם var להצגת הרשומות. חזרו פחות פיצות מהמקור, רק אלה שעמדו בתנאים.הטקסט המלא של הדקות הראשונות בהרצאה «שאילתת LINQ על אוספים רגילים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
חשוב להבין משהו מאוד מעניין בנוגע לשפת לינק. שפת לינק לא קשורה לדאטאבייסים. שפת לינק קשורה לאנטיטי פריימורק ולקולקשנים, ואנטיטי פריימורק לא חייבת לעבוד רק על דאטאבייס.
מה שאנחנו רואים כאן זה בעצם דוגמה אחרת לגמרי, פתחתי פרויקט חדש ואין לו שום קשר לדאטאבייס. יש לי פה מחלקה פיצה, יש לה קוטר, סלייסס, מספר משולשים, טופינגס, מספר תוספות ופרייס מחיר.
אין לי פה שום קשר לאנטיטי פריימורק קור של דטאבייס, יש לי כאן מיין, אנחנו יוצרים קולקשן של פיצות ומוסיפים לו 100 פיצות בעלי ערכים רנדומליים לחלוטין, הנה פונקציה שמחזירה ערך רנדומלי, יש לנו קוטר רנדומלי, מספר משולשים רנדומלי, מספר תוספות רנדומלי, ומחיר שנקבע בהתאם לפריטים הקודמים.
ומה שאנחנו רוצים לעשות זה איזושהי שאילתה על הקולקשן הזה, כאילו שאנחנו דאטאבייס, וזה מה שיפה בשפת לינק, היא מאפשרת לכם כאילו להשתמש בשפת sql, לא באמת שפת sql, זה שפת לינק, על קולקשנים ולא רק על דאטאבייס או קולקשנים שהגיעו מדאטאבייס.
אז בואו נניח שאנחנו רוצים לעשות פה איזשהו חיתוך, איזושהי שאילתה, לא צריך שאילתה מורכבת, בטח שלא ג'וין, בגלל שאין לנו שני קולקצ'נים, יש לנו רק אחד.
אבל בואו נניח שאני רוצה להביא את כל הפיצות בעלי קריטריונים מסוימים. נעשה את זה כמובן ב-SQL-like syntax, כי זה קצת יותר נוח, אפשר כמובן לעשות את זה, את אותו הדבר במתוד-לייק סינטקס, ואנחנו פונים לאוסף שלנו, פיצאז, או ליתר דיוק From P in Pizzas,
ואז אנחנו יכולים להגיד where, מה אנחנו בעצם מחפשים? אנחנו מחפשים רק דיאמטר שהוא גדול שווה ל-25 and p.slices יש לנו בין 4 ל-8 אז בואו נניח שהslices גדול שווה ל-6 ניקח slices גדול שווה ל-6 ובואו ניקח order by p.price בואו נגיד שאנחנו רוצים then buy לפי p.toppings סנדינג סדר יורד ולאחר מכן סלקט ניו ובואו נבחר לעצמנו אובייקט חדש יש לנו את הדיאמטר
פי נקודה סלייסז פי נקודה טופינגס וניקח גם את הפרייס שזה יהיה פי נקודה פרייס אבל גם את הוואט והוואט זה המע"מ value added text פי נקודה פרייס 0.17 אנחנו יכולים כאילו לקחת איזשהו אובייקט חדש שלא היה לפני זה כמובן שאם הייתי שם פה את p בלבד אז הייתי מקבל את אותו אובייקט p אבל יצרנו אובייקט חדש שיש בו את כל מה שהיה
קודם וגם vat הוא רוצה ממני שאני אשים פה m מפני שvat זה פרייס זה דצימל ו-0.17 זה דאבל אז הפכתי אותו לדצימל למה m קיצור של money כי דצימל זה בשביל כספים בואו ניקח ליסט פיצה נקרא לו selected pizzas שווה query.to list ונרוץ for each item in selected נציג אייטם,