Browse by Tags

Simulated Covariance for .NET Generics
02 April 08 08:00 AM | kcwalina | 16 Comments   
I just wrote this pattern, but I am not sure if I should add it officially to the Framework Design Guidelines. It seems like a bit of a corner case scenario, though I do get questions about it from time to time. Anyway, let me know what you think. Different Read More...
Synchronization at the Right Level
05 May 06 11:24 AM | kcwalina | 2 Comments   
I get a lot of questions about why the new generic collection interfaces (IList<T> for example) do not support synchronization. There are several reasons for it. One, probably the main, is that in practice synchronizing on the level of a single Read More...
C5 Collections
20 February 06 10:58 AM | kcwalina | 5 Comments   
Peter Sestoft and his team just released a library of collections for the CLI called C5 Collections . Unlike the Power Collections , this library introduces many new abstractions that are not present in the .NET Framework. The benefit of such approach Read More...
Filed under:
Disposable Collection
10 February 06 01:38 PM | kcwalina | 12 Comments   
Somebody asked me today, if we have a collection that is disposable and calls dispose on all its items when the collections.Dispose method is called. You can implement such collection by inheriting from List<T> and adding Dispose logic. If you add Read More...
Filed under:
Immutable Collections
22 November 05 01:28 PM | kcwalina | 4 Comments   
I just saw an interesting post that talks about a general pattern of immutable reference types. Good read. I highly recommend it! At the end of the post the author suggests that we add “value object” generic collection to the BCL. It’s an interesting Read More...
Why we don’t recommend using List<T> in public APIs
26 September 05 12:35 PM | kcwalina | 21 Comments   
We don’t recommend using List<T> in public APIs for two reasons. List<T> is not designed to be extended. i.e. you cannot override any members. This for example means that an object returning List<T> from a property won’t be able to get Read More...
System.Collections vs. System.Collection.Generic and System.Collections.ObjectModel
23 September 05 08:10 PM | kcwalina | 20 Comments   
Many people ask how the new.NET Framework 2.0 generic collections relate to the non-generic collections we shipped before. So, here you go. The most important types are in bold font. List<T> is basically a better ArrayList. It is optimized for speed, Read More...
Filed under:
List<T> vs. ArrayList Performance
25 August 05 05:25 PM | kcwalina | 0 Comments   
Rico just posted a new performance quiz where he compares performance of List<T> and ArrayList in some simple scenarios. List<T> is my Whidbey baby, so of course I had to answer that List<T> is faster :-) Read More...
Filed under:
PowerCollections Beta Avaliable
03 June 05 08:04 PM | kcwalina | 1 Comments   
The beta release of the PowerCollections library has been posted today. See . Read More...
Filed under:
Generic interfaces, IsReadOnly, IsFixedSize, and array
18 May 05 11:32 AM | kcwalina | 10 Comments   
Peter Golde recently posted about the IsReadOnly and IsFixedSize change we made to the generic collection interfaces.There are also several other discussions around the net on this topic. I thought I write up something to explain the motivation and our Read More...
Filed under:
The reason why Collection, ReadOnlyCollection, and KeyedCollection were moved to System.Collections.ObjectModel namespace
15 March 05 02:55 PM | kcwalina | 29 Comments   
Several people asked me why Collection<T>, ReadOnlyCollection<T>, and KeyedCollection<TKey,TValue> were moved to System.Collections.ObjectModel namespace. Here are the two main reasons: 1. Microsoft.VisualBasic namespace contains a non-generic Read More...
Filed under:
The reason why IEnumerator extens IDisposable
07 January 05 06:35 PM | kcwalina | 7 Comments   
Lot ’s of people asked me why IEnumerator<T> extends IDisposable. We did this to support some obscure, yet important scenarios where an enumerator enumerates database rows, or files in a directory, etc. In such cases, the enumerator usually opens Read More...
Filed under:
Power Collections on GotDotNet Featured Sites
03 November 04 05:46 PM | kcwalina | 1 Comments   
I just noticed that the Power Collections project made it to the “Featured Sites” on GotDotNet. See For those who don’t know, Power Collections is a community open source library Read More...
Filed under:
IComaprer & IComparable Refactoring Proposal
27 October 04 09:01 PM | kcwalina | 23 Comments   
We are exploring the possiblility of changing the design of IComparer<T> and IComparable<T> interfaces that will ship with Whidbey. This post describes some more detail on the issues we are trying to address with the design change and we are Read More...
Filed under:
System.Collections.Generic Dictionary Capacity, Hashing, and Collisions.
06 August 04 08:59 PM | kcwalina | 6 Comments   
Somebody asked me a question how to set the initial capacity of System.Collections.Generic.Dictionary<K,V> if one knows that the Dictionary will contain 1000 entries. The short answer Dictionary<int,string> numbers = new Dictionary<int,string>(1000); Read More...
Filed under:
More Posts Next page »
Page view tracker