Ok, so it's my first day, and I apologize if I did some things out of line.
LUCENENET-218.patch (attached to the issue) has the implementation of GeneralKeyedCollection. LUCENENET-219.patch has the changes to CompoundFileWriter, following best practices involving iterators, and uses the new GeneralKeyedCollection class to handle ordered insertions that are looked up by key (looked up for uniqueness in the Add method). Some things to notice in the CompoundFileWriter: - Fixed up code involving using iterators (using foreach instead of direct call to GetEnumerator). - Adding item to entries is type-safe and a compile-time check now (was not with ArrayList). - Order of additions is preserved when adding even though lookups are possible on the entries field. - Declared entries as readonly, given the reference itself is never mutated. - Changed some exception types to conform with best practice guidelines for .NET development: - ArgumentNullException instead of NullReferenceException if an argument is null. - InvalidOperationException instead of SystemException (SystemException is meant for the BCL, not for general consumption). I'll find the documentation on how to contribute (as well as code standards and the like) eventually, but if someone wants to point me in the right direction, by all means, please do =) - Nick
smime.p7s
Description: S/MIME cryptographic signature