2010-01-16 7 views
18

Je suis en train de construire une application en C#, mais je suis nouveau dans la langue mais c'est assez facile à apprendre parce que c'est trop sacrément similaire à Java.Structures de données C#

Cependant, je me perdre avec les structures de données que je ne l'ai pas trouvé une liste des structures de données disponibles complètes avec leurs méthodes comme la façon dont Java les a.

Quelqu'un at-il une liste de référence des structures de données disponibles pour C# et leurs méthodes?

+1

Vous cherchez une structure de données basée sur des scénarios (client, produit, livre), ou pour les structures de données très générales (arbre, liste, Dictionnaire)? – Eilon

+0

Jetez un oeil à https://github.com/riyadparvez/data-structures-csharp – user

Répondre

18

La plupart des structures de données que vous utiliserez en C# sont contenus dans le System.Collections.Generic namespace. Il y a quelques structures de données rarement utilisées dans le System.Collections.Specialized namespace. En outre, il existe des versions plus anciennes et non génériques des structures de données qui sont pour la plupart obsolètes depuis l'introduction des génériques en C# 2.0 disponibles dans le System.Collections namespace.

Scott Mitchell a un bel article d'introduction au sujet de certaines structures mis de données dans .NET: An Extensive Examination of Data Structures Using C# 2.0.

Si vous venez d'un milieu Java, vous remarquerez que, contrairement à Java, des structures de données .NET sont nommées d'après leur fonction, et non pas la façon dont ils sont mis en œuvre.

0

Comme les collections Java, C# a une sémantique hiérarchie d'interfaces qui comprend des collections (ICollection), les listes (IList) et carte (IDictionary). Il est mappé 1: 1 sur java.util.collections, à l'exception de java.util.Set. Il n'y a pas de set en C# aujourd'hui. ISet est censé être sur le chemin dans .NET 4.0.

+4

HashSet me convient très bien. –

2

Vous allez les aimer. Les structures de données C# combinées à LINQ offrent bien plus que Java. Découvrez l'espace de noms System.Collections.Generic. Une note importante que presque toute collection générique implémente l'interface IEnumerable<T> d'une manière ou d'une autre et vous pouvez LINQ à tout IEnumerable < T objet >:

List<SomeClass> yourList = new List<SomeClass>(); 
// Add elements ... 
var redElementsOnly = yourList.Where(e => e.IsRed); 

Vérifiez la classe System.Linq.Enumerable pour obtenir une liste complète de ce que LINQ peut faire pour toi.

Questions connexes