Lucene.Net.Index.FilterDirectoryReader: Eliminated unnecessary O(n + n) operation
diff --git a/src/Lucene.Net/Index/FilterDirectoryReader.cs b/src/Lucene.Net/Index/FilterDirectoryReader.cs
index f53dd85..d0262cf 100644
--- a/src/Lucene.Net/Index/FilterDirectoryReader.cs
+++ b/src/Lucene.Net/Index/FilterDirectoryReader.cs
@@ -41,12 +41,12 @@
         /// </summary>
         public abstract class SubReaderWrapper
         {
-            internal virtual AtomicReader[] Wrap(IList<AtomicReader> readers)
+            internal virtual AtomicReader[] Wrap(IList<IndexReader> readers) // LUCENENET specific: Changed from IList<AtomicReader> to IList<IndexReader> to eliminate cast in calling method
             {
                 AtomicReader[] wrapped = new AtomicReader[readers.Count];
                 for (int i = 0; i < readers.Count; i++)
                 {
-                    wrapped[i] = Wrap(readers[i]);
+                    wrapped[i] = Wrap((AtomicReader)readers[i]);
                 }
                 return wrapped;
             }
@@ -100,7 +100,7 @@
         /// <param name="input"> the <see cref="DirectoryReader"/> to filter </param>
         /// <param name="wrapper"> the <see cref="SubReaderWrapper"/> to use to wrap subreaders </param>
         public FilterDirectoryReader(DirectoryReader input, SubReaderWrapper wrapper)
-            : base(input.Directory, wrapper.Wrap(input.GetSequentialSubReaders().OfType<AtomicReader>().ToList()))
+            : base(input.Directory, wrapper.Wrap(input.GetSequentialSubReaders()))
         {
             this.m_input = input;
         }