Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Foreach vs AddRange
Message
De
12/08/2009 09:23:22
 
 
À
12/08/2009 09:10:02
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
C# 3.0
Divers
Thread ID:
01417359
Message ID:
01417529
Vues:
38
>>Adding an extension method ( say AddCollection) is a bad idea since it accepts an argument of IEnumerable(T).
>>
>>using items.Count() is slow - I guess it uses a foreach loop to count
>>
>>
>>// don't do this at home
>>
>>public static void AddCollection<T>(this List<T> list, IEnumerable<T> items)
>>		{
>>
>>			if (items.Count() <= Tuning.AddRangeMinimumItems) // 128
>>			{
>>				foreach (T item in items)
>>					list.Add(item);
>>			}
>>			else
>>			{
>>				list.AddRange(items);
>>			}
>>		}
>>
>>
>>An extension method that takes a whole array is a better idea - since array.Length is faster
>
>And probably I wouldn't use such an extesnion when it already exists (Concat):
>
>       static void UseConcat()
>        {
>            int[] buf = new int[Size];
>            List<int> list = new List<int>();
>            for (int i = nTimes; --i != 0; )
>            {
>                list.Concat(buf);
>                list.Clear();
>            }
>       }
>
>Cetin


I thought so as well - for a couple of minutes

They are both extension methods - but they are not doing the same, ie one works on the list whereas the other returns another Enumerator
Gregory
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform