הפעלת Linq Queries על פקדים המכילים Collections ללא חשיפה של IEnumerable מתאים

יום שישי, נובמבר 25, 2011

  אחד מהיכולות החזקות של השפה שאנחנו משתמשים בהם רבות זהו היכולת להפעיל Linq to Objects על כל מי שמממש את:IEnumerable<T>     ב - windows forms ישנם הרבה פקדים המכילים collections - כמו TabControl, TreeView ועוד.   הבעייה עם כל הפקדים הללו שהם חושפים את IEnumerable הרגיל, (ללא T) מה שגורם לכך שאי אפשר להפעיל עליהם שאילתות לינק.     כדי לתקן זאת ניתן להוסיף Extension Method מתאים לכל פקד ולהמיר את ה - IEnumerable  לאחד שתומך ב - Generic, לדוגמא:   internal static class Extension {     internal static IEnumerable<TabPage> AsEnumerator(this TabControl.TabPageCollection collection)     {         foreach (TabPage item in collection)         {             yield return item;         }     }      ...
2 תגובות

String extension – IsNullOrEmpty – ToEnum (Enum.Parse)

יום חמישי, ספטמבר 24, 2009

  אני משתמש די בקביעות עם שני extensions ל - string, וחשבתי לשתף אותם.   הראשון: בדיקה האם מחרוזת אינה null או ריקה בדרך כלל מתבצעת בצורה הבאה string str; if (!string.IsNullOrEmpty(str)) { }   היה הרבה יותר נחמד לולא היינו יכולים לשאול על ה - str - אבל מה לעשות שאולי ה - str הינו null (וזה שאלה מכשילה).   השני: המרה ממחרוזת ל - enum מתבצעת בדרך כלל ככה:   enum NyEnum {     One,     Two } NyEnum data = (NyEnum)Enum.Parse(typeof(NyEnum), "One");     ולכן כתבתי את המחלקה הבאה:   namespace System {     public static class StringExtension     {         public static bool IsNullOrEmpty(this string value)         {             return string.IsNullOrEmpty(value);         }           public static T ToEnum<T>(this string value) ...
3 תגובות

DataReader.GetValueOrDefault –> Extension for Extension

יום ראשון, ספטמבר 6, 2009

  בהמשך לפוסט שהראה איך לקבל ערכי ברירת מחדל עבור עמודות שיכולות להיות NULL בבבסיס הנתונים.   שלח לי חבר יקר (בניהו) את ההצעה הבאה:     public static T GetValueOrDefault<T>(this DbDataReader reader, int index) {     if (Convert.IsDBNull(reader))     {         return default(T);     }       return (T)reader; }   public static T GetValueOrDefault<T>(this DbDataReader reader, string name) {     if (Convert.IsDBNull(reader))     {         return default(T);     }       return (T)reader; }
אין תגובות