/** * @inheritdoc */ public function toDictionary($keySelector, $valueSelector = null) { $result = new Dictionary(); $keyFunc = $this->resolveFunction($keySelector); $valueFunc = $this->resolveFunction($valueSelector); foreach ($this as $item) { $key = $keyFunc($item); if ($result->containsKey($key)) { throw new LogicException(sprintf('Key selection produces duplicated elements "%s".', $key)); } $result->add($keyFunc($item), $valueFunc($item)); } return $result; }
public function testContainsKey() { $dictionary = new Dictionary(array('a' => 1, 'b' => 2, 'c' => 3)); $this->assertEquals(true, $dictionary->containsKey('b')); $this->assertEquals(false, $dictionary->containsKey('d')); }