Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Data Storage Microsoft IT Technology

What's New With Data Structures In C# 38

prostoalex writes "Scott Mitchell published his rather extensive examination of data structures in C# 2.0 (parts 1, 2, 3, 4, 5 and 6 add up to more than a hundred printed pages)."
This discussion has been archived. No new comments can be posted.

What's New With Data Structures In C#

Comments Filter:
  • No Fibonacci Heap? (Score:2, Insightful)

    by at2000 ( 715252 ) *
    Does Microsoft think that we should implement Fibonacci Heap ourselves, but not AVL-tree?
    • by Elwood P Dowd ( 16933 ) <judgmentalist@gmail.com> on Monday February 21, 2005 @01:42PM (#11737179) Journal
      It's just a body count issue. If Microsoft had twice the time or twice the number of people, C# 2.0 would have had twice the number of new features. Lots of good stuff got jettisoned. Everywhere you look on blogs.msdn.com, folks are talking about what they woulda/coulda/shoulda done with more time.
      • by Anonymous Coward
        Too bad they don't have money to hire more people, then.

        Maybe they should have spent more time designing and coding instead of blogging. :-)
    • by rreyelts ( 470154 ) on Monday February 21, 2005 @03:09PM (#11737925) Homepage
      I'm hardly a Microsoft defender, but a fibonacci heap is anything but a common data structure. You'd most likely use one as a priority queue where extract-mins and decrease-keys are extremely common, but even then, lots of people still avoid them.

      On the other hand, AVL trees get used all over the place (red-black trees being a typical backing data structure for an ordered map).
  • by Frans Faase ( 648933 ) on Monday February 21, 2005 @03:18PM (#11738026) Homepage
    Having read pages 1 and 6, I do not read anything beyond the introductionary level. It does not even seem to be rather C# specific for that matter. This is all stuff that people with a University degree in computer science should know by heart. The fact many of the readers rank it with a 9, says more about the readers than the quality of the page. People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application.
    • Is that really a problem? Not everyone has a university degree. And this is available online so you can look at it whenever you want.

      "People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application."

      Gotta start somewhere.

      What about the kids just headed to university who want a quick start? What about people just interested in these like project managers who ar
    • Yeah, but that's the whole point, the article is about C#. I can do all these data structures in C(++), but I've no idea how they are done in .NET/C#. Same goes a lot of other people with CS degrees. Most universites teach C++ or Java their primary language.
  • From TFA:

    "Too, there are unique challenges with representing and operating upon infinite sets, because an infinite set's contents cannot be completely stored in a data structure or enumerated."

    Compare eg Houseplants of Gor [sexuality.org].

    (And yes, it's not terrifically advanced, and disappointingly free of C#-specific enlightenment...)
  • maddening (Score:5, Interesting)

    by philgross ( 23409 ) on Monday February 21, 2005 @09:04PM (#11740688) Homepage

    In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.

    Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity. The comparison with Java, both in content and documentation, is depressing.

    I like C# as a language, but the CS illiteracy of the libraries is annoying and inconvenient. The lack of a concept of a tree means that there's no automatic way to show an XML DOM tree with a TreeControl. They both have independently-developed, incompatible, although largely equivalent, tree representations.

    Also, note that the SortedList class does not implement the IList interface, and none of the shipped System.Collections classes implement their own CollectionBase.
    • Re:maddening (Score:2, Informative)

      My class browser shows:

      LinkedList
      Queue
      SortedList
      Stack
      TreeDictio nary

      in Systems.Collections.Generic - not extensive perhaps - but a little more than your post implies.
    • In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
      Word. In the meantime, we're stuck w/ NCollection [tigris.org].
    • Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity.

      Maybe I was reading the wrong set of articles, but I could have sworn that he specificially mentioned multiple tree structures, sets, and graphs as new data structures that were being added in .NET 2.0. And there was plenty of mention of big-O in the discussion of the performance of various data structures.

  • So far (Score:5, Informative)

    by Zebra_X ( 13249 ) on Monday February 21, 2005 @09:07PM (#11740706)
    most peeps have missed the point of the articles: Common data structures added in C#/.NET 2.0.

    The current framework (1.0 and 1.1) don't come with any standard data structures apart from ArrayList and Collections. 2.0 is the first version of the framework to "feature" these common structures. These articles are a good guide to the new additions. They also show generics in action. Which is also a new addition.
    Finally, there are some *practical* examples of how to use the structures in day to day scenarios.

    Certainly, no ground breaking theory here; then again that wasn't the point.
  • by Anonymous Coward
    I wonder who'll be the first to RTFA before posting.
  • Kinda off topic, but does anyone know if there are going to be parameterized properties in C# 2.0 (besides the default property, of course)? I didn't see anything overtly mentioned in this article about them (maybe I missed something). This lacking feature is the single most annoying thing (for me anyway) of C#.

egrep -n '^[a-z].*\(' $ | sort -t':' +2.0

Working...