This is an automated email from the ASF dual-hosted git repository. nightowl888 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit 6a7b255eb8f81c771bd7885bcf041f3c76b82b5c Author: Shad Storhaug <[email protected]> AuthorDate: Tue Jan 7 21:49:21 2020 +0700 Lucene.Net.Index.BaseCompositeReader: Eliminated unnecessary O(n + n) operation and cast --- src/Lucene.Net/Index/BaseCompositeReader.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Lucene.Net/Index/BaseCompositeReader.cs b/src/Lucene.Net/Index/BaseCompositeReader.cs index 90da6c8..ff6ef78 100644 --- a/src/Lucene.Net/Index/BaseCompositeReader.cs +++ b/src/Lucene.Net/Index/BaseCompositeReader.cs @@ -1,6 +1,6 @@ +using J2N.Collections; using System; using System.Collections.Generic; -using System.Linq; namespace Lucene.Net.Index { @@ -59,7 +59,7 @@ namespace Lucene.Net.Index /// List view solely for <see cref="GetSequentialSubReaders()"/>, /// for effectiveness the array is used internally. /// </summary> - private readonly IList<R> subReadersList; + private readonly IList<IndexReader> subReadersList; // LUCENENET: Changed from IList<R> to IList<IndexReader> to eliminate casting /// <summary> /// Constructs a <see cref="BaseCompositeReader{R}"/> on the given <paramref name="subReaders"/>. </summary> @@ -71,7 +71,13 @@ namespace Lucene.Net.Index protected BaseCompositeReader(R[] subReaders) { this.subReaders = subReaders; - this.subReadersList = subReaders.ToList();// Collections.unmodifiableList(Arrays.asList(subReaders)); + + // LUCENENET: To eliminate casting, we create the list explicitly + var subReadersList = new List<IndexReader>(subReaders.Length); + for (int i = 0; i < subReaders.Length; i++) + subReadersList.Add(subReaders[i]); + this.subReadersList = subReadersList.ToUnmodifiableList(); + starts = new int[subReaders.Length + 1]; // build starts array int maxDoc = 0, numDocs = 0; for (int i = 0; i < subReaders.Length; i++) @@ -222,7 +228,7 @@ namespace Lucene.Net.Index protected internal override sealed IList<IndexReader> GetSequentialSubReaders() { - return subReadersList.Cast<IndexReader>().ToList(); + return subReadersList; } } } \ No newline at end of file
