DCSIMG
Linq - שלמה גולדברג (הרב דוטנט)
Sign in | Join | Help

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

Browse by Tags

הפעלת Linq Queries על פקדים המכילים Collections ללא חשיפה של IEnumerable מתאים
25 November 11 11:25 AM | Shlomo | 2 comment(s)
אחד מהיכולות החזקות של השפה שאנחנו משתמשים בהם רבות זהו היכולת להפעיל Linq to Objects על כל מי שמממש את: IEnumerable<T> ב - windows forms ישנם הרבה פקדים המכילים collections - כמו TabControl, TreeView ועוד. הבעייה עם כל הפקדים הללו שהם חושפים את IEnumerable הרגיל, (ללא T) מה שגורם לכך שאי אפשר להפעיל עליהם שאילתות לינק. כדי לתקן זאת ניתן להוסיף Extension Method מתאים לכל פקד ולהמיר את ה - IEnumerable לאחד שתומך ב - Generic, לדוגמא: internal static class Extension { internal static IEnumerable...
Including Empty Directory While Deploying a Web Application
29 May 11 11:49 AM | Shlomo | with no comments
גיל התלונן ובצדק שכשעושים Deploy ל - WebApplication זה לא מכיל את התיקיות הריקות, והוא הציע להוסיף קובץ טקסט ריק, אני מניח שכל מי שעבד בעולם ה - web נתקל בבעייה המעצבנת הזו, ולכן החלטתי אחת ולתמיד לפתור את זה. פוסט זה מכיל הוראות כיצד לשנות את ההגדרות של ה- publish המוגדר בסביבת העבודה, הקוד לא עבר QA מקיף ולכן השינויים הם באחריות המשתמש. ראשית הורידו את ה - d ll הזה, הוא מכיל מחלקה אחת הנראית כך: public class CopyEmptyFolder : Task { public string ProjectFile { get ; set ; } public string OutputFolder...
Aggregate
18 March 11 02:36 AM | Shlomo | 3 comment(s)
שימוש נחמד ב - Aggregate של LINQ זה היכולת לחבר מערך כלשהו למחרוזת אחת המופרדת עם פסיקים (עבור שאילתת in). לדוגמא: int [] arr = { 1, 2, 3, 4, 5, 6 }; string s = arr.Select(x => x.ToString()).Aggregate< string >((x, y) => x + "," + y); יחזיר: "1,2,3,4,5,6" המשתנה x יכיל בכל סיבוב של הלולאה את הערכים הקודמים ואילו המשתנה y יכיל כל פעם את המשתנה הנוכחי. אפשר להריץ את הקוד הבא כדי להווכח בכך: string s = arr.Select(x => x.ToString()).Aggregate< string >((x, y)...
תגים:, ,
CS1525: Invalid expression term '>'
04 January 11 01:52 PM | Shlomo | with no comments
באחד הפרוייקטים שאני נמצא בהם, עובדים (לצערי) עם Web Site, הסביבה היא Visual Studio 2008 SP1 וכמובן זה מקונפג ל - Net Framework 3.5. כל ניסיון להשתמש ב - LINQ הביא לשגיאת קומפילציה שהתחביר אינו מוכר. לאחר שיטוט בגוגל הגעתי לכאן והרעיון שהוצע שם אכן עבד. להעביר את הפרוייקט ל - Framework 3.0. לקמפל. להעביר את הפרוייקט ל - Framework 3.5. לקמפל. להתחיל להשתמש ב - LINQ ואכן זה עבד.
תגים:, ,
Quick guide to LINQ (Language Integrated Query)
05 October 10 08:59 PM | Shlomo | 4 comment(s)
המדריך המהיר ל - LINQ. מטרת הפוסט: בסיומו של פוסט זה אתם תדעו לכתוב קוד LINQ בשני התחבירים שלו ותבינו למה כדאי לעבוד עם LINQ ומה זה נותן לנו בתור מפתחים. תוכן עניניים מה זה לינק ומה נותן לנו השימוש בו. לפני LINQ. var keyword Anonymous Types Extension Methods Lambda Expressions כתיבת קוד שמדמה LINQ תחביר LINQ Extension Methods Syntactic sugar PLINQ מה זה LINQ ומה נותן לנו השימוש בו. הרעיון המרכזי מאחורי השימוש ב – LINQ הוא להפסיק לכתוב "איך" ולהתחיל לכתוב "מה", כלומר כשאנחנו כותבים...
Using ToOrder and ToDictionary
06 July 10 11:32 AM | Shlomo | 2 comment(s)
דוגמת שימוש למיון Dictionary. נניח שיש לכם פונקציה שמחזירה Dictinoary private static Dictionary < string , int > GetLeftTabsDefinition() { Dictionary < string , int > tabs = new Dictionary < string , int >() { { "ShowInfo" , 2}, { "ShowResources" , 1 }, { "ShowTOC" , 3 }, }; return tabs; } כעת קבלתם את האובייקט var tabs = GetLeftTabsDefinition(); ואתם רוצים למיין אותו - הקוד צריך להיראות כך. tabs = tabs.OrderBy(x => x.Value).ToDictionary(x =>...
תגים:, ,
LinqToSql - Save just the last change - Part 2
15 January 09 07:11 PM | Shlomo | with no comments
בהמשך לפוסט הקודם שבו כתבתי איך לעשות עידכון רק לשינוי האחרון, דברתי עם אדר לגבי המוטיבציה לעשות את זה, מדוע שנרצה לעדכן רק את האחרון, והגענו להסכמה שיש כאן משהו מוזר, כי ב Ado הישן והטוב כשרצינו לעשות upadte היינו יכולים לשלוח מערך של DataRow, ולעדכן רק חלק מהנתונים, אז מדוע כשאנחנו מתקדמים ל LinkToSql אנחנו הולכים אחורה מבחינה פונקציונליות ? בכל מקרה במדה ואנחנו מוכנים לעשות undo לכל השינוים האחרים מלבד האחרון, נוכל להשתמש בפתרון, מהפוסט הקודם, אבל במדה ולא נרצה לעשות undo, יניב חדד הציע לי, לייצר...
תגים:, ,
LinqToSql - Save just the last change
13 January 09 11:15 AM | Shlomo | 2 comment(s)
מישהו חביב בשם נריה שאל אותי את השאלה הבאה: "יש לי אפליקציה חלונאית, ובה dataGridView המקבל את הנתונים ע"י Binding מ DataContext. ואני רוצה כפתור שישמור רק את השינוי האחרון שבוצע." באופן אישי לא יצא לי כל כך להשתמש עדיין ב LinqToSql, אבל כמובן שזאת הייתה הזדמנות נהדרת לבדוק את זה, וידוע שאני אוהב ללמוד דברים חדשים, אז התחלתי להסתכל.. בסוף עשיתי את הדבר הבא, עשיתי undo לכל השינויים האחרונים, חוץ מלאחרון, ואז שמרתי את השינוי האחרון. הנה הקוד: 1 public static void UpdateLastChanges()...
תגים:, ,