Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Foreach vs AddRange
Message
De
13/08/2009 08:18:33
 
 
À
13/08/2009 07:59:30
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:
01417827
Vues:
36
>>>>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
>
>Yes and I can't see why I wouldn't want that. That is exactly what I would like it to be (but that is me:).
>Cetin

Not sure what you mean here, Cetin
Gregory
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform