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

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

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

Aggregate

 

שימוש נחמד ב - 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) =>

            {

                Console.WriteLine("x:{0}\r\ny:{1}", x, y);

                Console.WriteLine();

                return x + "," + y;

            });

פורסם: Mar 18 2011, 02:36 AM by Shlomo | with 3 comment(s)
תגים:, ,

תוכן התגובה

רון קליין כתב/ה:

קודם כל, הדוגמה באמת ממחישה את Aggregate, וזה מצוין.

עם זאת, הייתי מציין כהערה, שהפתרון המוצע הוא לא מומלץ, ובדיוק בשביל זה יש את המחלקה StringBuilder.

ובהזדמנות זו, ברכות על מעל 400 פוסטים! כבוד!

# March 20, 2011 9:59 AM

משה כתב/ה:

הי. זה שימושי!

# March 20, 2011 8:52 PM

Avi Pinto כתב/ה:

הי משה,

אמנם הדגמה יפה של Aggregate, ומסכים עם רון לגבי ה StringBuilder

אבל במקרה הנדון יש פתרון פשוט וקריא יותר:

string.Join(",",arr)

# March 21, 2011 1:54 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 6 and 5 and type the answer here:


Enter the numbers above: