Opened 10 years ago

Closed 9 years ago

#1991 closed task (done)

Add BidirectionalLookup collection to HeuristicLab.Collections

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.8
Component: Collections Version: 3.3.8
Keywords: Cc:


Currently the collection is implemented in the HeuristicLab.Operators.Views.GraphVisualization namespace. The class however is of general interest and a comparable implementation is .Net does not exist. The existing implementation should be reviewed and moved to HeuristicLab.Collections.

Change History (9)

comment:1 Changed 10 years ago by abeham

  • Status changed from new to accepted

comment:2 Changed 10 years ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from accepted to reviewing


  • Added BidirectionalDictionary for storing 1:1 mapping and BidirectionalLookup for storing M:N mappings
    • I used HashSets in the BidirectionalLookup instead of Lists, because of the difficulty of removing items when custom equality comparers are used.
  • Added unit tests

comment:3 Changed 10 years ago by abeham

r9009: Implemented review comments

comment:4 Changed 10 years ago by mkommend

  • Owner changed from mkommend to abeham

r9011: Adapted OperatorGraphVisualization to ignore warnings regarding the obsolete attribute and adapted to the new BidirectionalDictionary if possible.

comment:5 Changed 10 years ago by mkommend

r9012: Corrected unit tests for BidirectionalDictionary to changes in r9009.

@abeham: Please have a look over r9011 & r9012.

comment:6 Changed 10 years ago by abeham

Thanks for fixing the unit test. I think now that you switched to the new collection in the views project we could revert marking the class obsolete and just declare it internal. What do you think?

comment:7 Changed 10 years ago by mkommend

r9019: Removed the obsolete attribute from the BidirectionalLookup in the OperatorGraphVisualization and made the class internal instead.

comment:8 Changed 10 years ago by abeham

  • Status changed from reviewing to readytorelease


comment:9 Changed 9 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.7 to 3.3.8
Note: See TracTickets for help on using tickets.