שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_postmeta`

C# - Deconstruction | אתר המדריכים הישראלי

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( wp_postmeta.meta_key = '_elementor_priority' AND ( ( mt1.meta_key = '_elementor_location' AND mt1.meta_value = 'elementor_head' ) ) ) AND wp_posts.post_type = 'elementor_snippet' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( wp_postmeta.meta_key = '_elementor_priority' AND ( ( mt1.meta_key = '_elementor_location' AND mt1.meta_value = 'elementor_body_start' ) ) ) AND wp_posts.post_type = 'elementor_snippet' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SELECT wp_posts.* FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (141) ) AND wp_posts.post_type = 'nav_menu_item' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order ASC

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SELECT wp_posts.* FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (140) ) AND wp_posts.post_type = 'wp_template' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC

C# – Deconstruction

C#
C#

Deconstruction הוא תהליך של פירוק ערך של משתנה למספר משתנים חדשים, משהו שיכול להיות מאוד יעיל בטיפול ברשימות מסוג Tuple או מילונים למשל.
במאמר זה נעבור על מספר דוגמאות אשר מדגימות תהליך פירוק למבני נתונים ב-C#

Tuple Deconstruction

בקטע הקוד הבא ניצור רשימת Tuple ונפרק את אבריה למשתנים חדשים:

var user = ("Jimmie", "Handrill", "Handrill99@technow.co.il");

var (firstName, lastName, email) = user;

Console.WriteLine(firstName);
Console.WriteLine(lastName);
Console.WriteLine(email);

שימו לב לשורה 3 – שם ביצענו את תהליך הפירוק.
בתוך הסוגריים נתנו שמות למשתנים החדשים, כאשר הערך שהם מכילים יהיה הערכים של רשימת ה-Tuple שיצרנו לפני זה.
כעת נוכל להדפיס את הערכים של משתנים אלו בנפרד מבלי להתייחס לרשימת ה-Tuple.

Tuple Deconstruction
Tuple Deconstruction

דוגמאות נוספות ל-Tuple Deconstruction במאמרים – איך לבצע איטרציה על מאפייני מחלקה, C# – JSON

פירוק מילונים

כמו שביצענו Tuple Deconstruction כמובן שנוכל לבצע תהליך פירוק גם למבני נתונים אחרים.
נניח והיה לנו צורך לפרק צמדי Key-Value ממילון למשתנים שונים לצורך הדפסתם, יכולנו לפעול כך:

var colors = new Dictionary<int, string>
{
    {1, "Red"},
    {2, "Blue"},
    {3, "Green"},
    {4, "Yellow"}
};

foreach ((int key, string value) in colors)
{
    Console.WriteLine($"{key}: {value}");
}

לאחר מכן השתמשנו בלולאה על מנת להדפיס משתנים אלו, וכשנפעיל את התוכנית נקבל את הפלט הבא:

Dictionary Deconstruction
Dictionary Deconstruction

שימו לב כי במקרה זה את תהליך הפירוק ביצענו בחתימת הלולאה, בין הסוגריים נתנו למשתנים את השמות – key ו-value.

פירוק מחלקה

במקרה שנרצה, נוכל גם גם לבצע תהליך פירוק למאפייני מחלקה.
לשם ההדגמה ניצור את מחלקת User ולה מאפייני שם פרטי ושם משפחה:

class User
{
    string FirstName { get; set; }
    string LastName { get; set; }

    public User(string fname, string lname)
    {
        FirstName = fname;
        LastName = lname;
    }

    public void Deconstruct(out string fname, out string lname)
    {
        fname = FirstName;
        lname = LastName;
    }    
}

בתוך המחלקה יצרנו את המתודה – Deconstruct שמקבלת שני מאפייני Out – אחד עבור השם הפרטי, השני עבור שם המשפחה.
הערכים שיכילו פרמטרים אלו הם מאפייני המחלקה שיצרנו – FirstName ו-LastName.
את שם ושם המשפחה של המשתמש נזין בבנאי, כך שאת התוכנית נוכל לבנות כך:

User user = new("Bob", "Mana");

var (firstName, lastName) = user;
Console.WriteLine($"{firstName} {lastName}");

וכשנריץ את התוכנית, נוכל לקבל את התוצאה הבאה:

Class Deconstruction
Class Deconstruction

לקריאה מורחבת באתר של מייקרוסופט יש ללחוץ כאן.

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

גולשים יקרים, התכנים המוצגים באתר נכתבים בהתנדבות מלאה מתוך כוונה להנגיש מידע עבורכם. אם נתקלתם במדריך חינמי שפתר לכם תקלה או לימד אתכם משהו חדש שלא ידעתם, וברצונכם לתגמל את כותב המדריך או סתם להזמין אותו לכוס קפה, הינכם יותר ממוזמנים לתרום.

ניתן לתרום 10, 15, 20 או כל סכום אחר שתרצו באמצעות כרטיס אשראי \ Paypal

רוצים לשתף את המדריך?

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

הזמינו אותי לכוס קפה
buy me coffee

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

גולשים יקרים, רוב התכנים המוצגים באתר נכתבים בהתנדבות מלאה מתוך כוונה להנגיש מידע עבורכם. אם נתקלתם במדריך חינמי שפתר לכם תקלה או לימד אתכם משהו חדש שלא ידעתם, וברצונכם לתגמל את כותב המדריך או סתם להזמין אותו לכוס קפה, הינכם יותר ממוזמנים לתרום.

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( wp_postmeta.meta_key = '_elementor_priority' AND ( ( mt1.meta_key = '_elementor_location' AND mt1.meta_value = 'elementor_body_end' ) ) ) AND wp_posts.post_type = 'elementor_snippet' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC

שגיאה במסד הנתונים של וורדפרס: [Disk full (/tmp/#sql_2585d4_1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_options`