dotnet / dotNext

Next generation API for .NET
https://dotnet.github.io/dotNext/
MIT License
1.56k stars 119 forks source link

Potential addition of an `OrderedDictionary<TKey, TValue>` type #220

Open alexrp opened 5 months ago

alexrp commented 5 months ago

Context: https://github.com/dotnet/runtime/issues/24826 (especially the last 10 or so comments)

Do you think it would make sense for .NEXT to include @TylerBrinkley's OrderedDictionary<TKey, TValue> implementation in DotNext.Collections? (Assuming Tyler takes no issue with this, of course.) It seems like there's high demand for this type but low appetite for prioritizing it from the .NET team, and it's only currently available in an unmaintained, pre-release, and deprecated package.

TylerBrinkley commented 5 months ago

It's MIT licensed so please do with it what you will. Personally, outside of including it in the BCL I think it would probably be used more in a more collection focused library. I think more people would be able to discover its existence and would be more willing to take a dependency on it than a more general purpose library like this. -Edit (After re-reading this I guess I really like the word "more" 😄)

alexrp commented 5 months ago

I think more people would be able to discover its existence and would be more willing to take a dependency on it than a more general purpose library like this.

The only general purpose collections library that immediately comes to mind here is C5, but that seems to be unmaintained these days... :thinking:

One could also imagine a DotNext.Collections package, but at that point I might be asking too much of @sakno. :eyes:

sakno commented 5 months ago

On the one hand, I never tried to reach the goal to incorporate reusable data structures to .NEXT such as trees, collections, etc. From the other side, the library has specialized collections such as typed maps, concurrent cache, etc. Also, there is very similar discussion and proposal: #163. And it was rejected.

alexrp commented 5 months ago

If you don't think it belongs in .NEXT, that's totally fine. This was just the first possibility that came to mind while trying to think of a potential home for it.

sakno commented 5 months ago

Let's keep this issue open for now. I don't want to be a sole decision maker, .NEXT is an open-source project and community opinion matters.

alexrp commented 2 months ago

Still has to go through API review, but I think it's safe to say that this won't be needed after all: https://github.com/dotnet/runtime/issues/24826#issuecomment-2047792174