Exemplo n.º 1
0
 /**
  * @return \Iterator
  */
 public function getIterator()
 {
     $dict = $this->dict;
     $it = Ginq::from($dict->keys())->select(function ($key) use(&$dict) {
         return new GroupingGinq(IteratorUtil::iterator($dict->get($key)), $key);
     }, ValueSelector::getInstance())->getIterator();
     return $it;
 }
Exemplo n.º 2
0
 /**
  * @param \Closure|string|int|Selector|null $compareKeySelector
  * @return OrderingGinq
  */
 public function thenByDesc($compareKeySelector = null)
 {
     $compareKeySelector = SelectorResolver::resolve($compareKeySelector, ValueSelector::getInstance());
     $comparer = ComparerResolver::resolve(null, Comparer::getDefault());
     $comparer = new ProjectionComparer($compareKeySelector, $comparer);
     $comparer = new ReverseComparer($comparer);
     $comparer = new CompoundComparer($this->comparer, $comparer);
     return new OrderingGinq($this->it, $comparer);
 }
Exemplo n.º 3
0
 public function rewind()
 {
     $outerKeySelector = $this->outerKeySelector;
     $lookup = Ginq::from($this->inner)->toLookup($this->innerKeySelector, ValueSelector::getInstance(), $this->eqComparer);
     $this->it = new SelectManyWithJoinIterator($this->outer, new DelegateSelector(function ($v, $k) use($lookup, $outerKeySelector) {
         return $lookup->get($outerKeySelector->select($v, $k));
     }), $this->valueJoinSelector, $this->keyJoinSelector);
     $this->it->rewind();
 }
Exemplo n.º 4
0
 public function rewind()
 {
     $this->outer->rewind();
     $this->lookup = Ginq::from($this->inner)->toLookup($this->innerCompareKeySelector, ValueSelector::getInstance());
     $this->fetchIfValid();
 }