Tuple <IIndex <K>, VectorConstruction> IIndexBuilder.GetRange <K>(Tuple <IIndex <K>, VectorConstruction> _arg12, Tuple <FSharpOption <Tuple <K, BoundaryBehavior> >, FSharpOption <Tuple <K, BoundaryBehavior> > > _arg13) { Tuple <IIndex <K>, VectorConstruction> tuple1 = _arg12; VectorConstruction vectorConstruction = tuple1.Item2; IIndex <K> index = tuple1.Item1; Tuple <FSharpOption <Tuple <K, BoundaryBehavior> >, FSharpOption <Tuple <K, BoundaryBehavior> > > tuple2 = _arg13; FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption1 = tuple2.Item1; FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption2 = tuple2.Item2; Tuple <long, long> tuple3 = new Tuple <long, long>(0L, index.KeyCount - 1L); long num1 = tuple3.Item1; long num2 = tuple3.Item2; FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption3 = fsharpOption1; long num3; if (fsharpOption3 != null) { FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption4 = fsharpOption3; K key = fsharpOption4.get_Value().Item1; Lookup lookup = !fsharpOption4.get_Value().Item2.Equals((object)BoundaryBehavior.get_Exclusive(), LanguagePrimitives.get_GenericEqualityComparer()) ? Lookup.ExactOrGreater : Lookup.Greater; FSharpChoice <Unit, Tuple <K, long> > fsharpChoice = OptionalValueModule.MissingPresent <Tuple <K, long> >(index.Lookup(key, lookup, (Func <long, bool>) new LinearIndex.loBound())); num3 = !(fsharpChoice is FSharpChoice <Unit, Tuple <K, long> > .Choice1Of2) ? ((FSharpChoice <Unit, Tuple <K, long> > .Choice2Of2)fsharpChoice).get_Item().Item2 : num2 + 1L; } else { num3 = num1; } long startAddress = num3; FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption5 = fsharpOption2; long num4; if (fsharpOption5 != null) { FSharpOption <Tuple <K, BoundaryBehavior> > fsharpOption4 = fsharpOption5; K key = fsharpOption4.get_Value().Item1; Lookup lookup = !fsharpOption4.get_Value().Item2.Equals((object)BoundaryBehavior.get_Exclusive(), LanguagePrimitives.get_GenericEqualityComparer()) ? Lookup.ExactOrSmaller : Lookup.Smaller; FSharpChoice <Unit, Tuple <K, long> > fsharpChoice = OptionalValueModule.MissingPresent <Tuple <K, long> >(index.Lookup(key, lookup, (Func <long, bool>) new LinearIndex.hiBound())); num4 = !(fsharpChoice is FSharpChoice <Unit, Tuple <K, long> > .Choice1Of2) ? ((FSharpChoice <Unit, Tuple <K, long> > .Choice2Of2)fsharpChoice).get_Item().Item2 : num1 - 1L; } else { num4 = num2; } long endAddress = num4; if (endAddress < startAddress) { return(new Tuple <IIndex <K>, VectorConstruction>((IIndex <K>) new LinearIndex <K>(System.Array.AsReadOnly <K>(new K[0]), (IIndexBuilder)this, FSharpOption <bool> .Some(true)), VectorConstruction.NewEmpty(0L))); } return(new Tuple <IIndex <K>, VectorConstruction>((IIndex <K>) new LinearRangeIndex <K>(index, startAddress, endAddress), VectorConstruction.NewGetRange(vectorConstruction, RangeRestriction <long> .NewFixed(startAddress, endAddress)))); }
bool IDictionary <K, V> .TryGetValue(K key, ref V value) { FSharpOption <Tuple <K, V> > fsharpOption = (FSharpOption <Tuple <K, V> >)SeqModule.TryFind <Tuple <K, V> >((FSharpFunc <M0, bool>) new SeriesExtensions.System\u002DCollections\u002DGeneric\u002DIDictionary\u002DTryGetValue <K, V>(key), (IEnumerable <M0>)SeqModule.Zip <K, V>((IEnumerable <M0>) this.keys, (IEnumerable <M1>) this.values)); if (fsharpOption == null) { return(false); } V v = fsharpOption.get_Value().Item2; value = v; return(true); }