IEnumerable.IndexOf

19 בדצמבר 2012

תגיות: ,
4 תגובות

כתבתי Extensions חביב שנראה כך:

namespace System.Collections.Generic

{

    public static class IEnumerableExtensions

    {

        public static int IndexOf<T>(this IEnumerable<T> collection, T item)

        {

            int index = -1;

 

            foreach (T t in collection)

            {

                index++;

                if (t.Equals(item))

                    break;

            }

 

            return index;

        }

    }

}

לא ברור לי למה לא קיים IndexOf של המערכת, אבל אם נוסיף את הפונקצייה הזו, נוכל להשתמש ב – IndexOf

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

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

4 תגובות

  1. דוד19 בדצמבר 2012 ב 8:25

    לדעתי זה לא שמיש.
    הרעיון של indexof זה לקבל פוזיציה לשליפה מאוחרת יותר,
    ובienumerable אין היגיון לעשות זאת: בשעת החיפוש אתה סורק, ואח"כ שוב בשעת השליפה.
    אני טועה?

    הגב
  2. Shlomo19 בדצמבר 2012 ב 9:54

    כן אתה טועה.

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

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

    הגב
  3. שמואל19 בדצמבר 2012 ב 15:21

    לא מבין למה אתה אומר שלא קיים ??
    אולי לא על IEnumerable אבל על list וגם על מערך יש
    וזה מספיק לי בכ"א.

    הגב
  4. Shlomo20 בדצמבר 2012 ב 7:27

    ומה קורה כשיש לך IEnumerable ולא מערך או LIST,

    הגב