Bonjour,
Je souhaite pourvoir générer des nombre (ou des id) aléatoires uniques.
L'idéal serait un truc basé sur l'heure exacte, un peu comme ce que peut générer oracle...
Existe-t-il un moyen s'il vous plait ?
Merci d'avance.
Bonjour,
Je souhaite pourvoir générer des nombre (ou des id) aléatoires uniques.
L'idéal serait un truc basé sur l'heure exacte, un peu comme ce que peut générer oracle...
Existe-t-il un moyen s'il vous plait ?
Merci d'avance.
La fonction Random est là pour cela.Je souhaite pourvoir générer des nombre (ou des id) aléatoires ...
La solution consiste à éliminer des tirages les nombres déjà trouvés.... uniques.
Quelque chose du genre peut-être si vous voulez vous baser sur la date et l'heure à la milliseconde pret:
Graffito a répondu en même temps que moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DateTime CurrentTime = DateTime.Now; string id = ""; id = CurrentTime.Year.ToString() + CurrentTime.Month.ToString() + CurrentTime.Day.ToString() + CurrentTime.Hour.ToString() + CurrentTime.Minute.ToString() + CurrentTime.Second.ToString() + CurrentTime.Millisecond.ToString();
Je pensais effectivement à Random mais qui peux tomber plusieurs fois sur le même nombre.
Si tu veux être sûr d'être unique tu ne peux pas te baser sur l'heure car si tu génères trop rapidement tes nombres il est possible que tu ais 2 fois le même nombre.
De même avec la classe Random, rien ne garanti l'unicité. Cependant si tu souhaites utiliser la classe Random tu peux conserver la liste des nombres générés et vérifier que le nombre généré n'est pas déjà utilisé (et en regénéré un autre si besoin).
Si tu n'es pas obligé d'avoir des nombres tu peux te tourner vers les Guid (Guid.NewGuid)
Merci pour vos propositions
A mon avis il est difficile de tomber deux fois sur le même nombre quand on utilise l'heure jusqu'aux millisecondes pour générer des id uniques.
...mais, qu'est-ce donc un Guid ?
En effet, je ne suis pas obligé d'avoir des int... mon id c'est d'avoir des clefs uniques pour des objets de type SortedList.
Bonsoir,
si l'idée est juste d'avoir des clés uniques, alors le Guid est effectivement une bonne solution. De plus, c'est unique non pas localement, mais globalement (avant que deux ordinateurs différents puissent générer un doublon bon courage !)
Un Guid est de la forme 3F2504E0-4F89-11D3-9A0C-0305E82C3301 et son nom signifie "Globally Unique Identifier" ^^
Quel est donc l'intéret de mettre clés aléatoires dans une SortedList ?mon id c'est d'avoir des clefs uniques pour des objets de type SortedList.
Ca dépend à quelle vitesse tu génères tes nombres mais ce n'est pas du tout à exclure.
GUID : Globally Unique IDentifier (identificateur global unique)
http://msdn.microsoft.com/fr-fr/libr...d.newguid.aspx
Ah d'accord super merci.
En fait, je serialize une liste d'objets dans des fichiers bin.
Quand je veux les récupérer, je souhaiterais aussi les manipuler, et si j'en supprime un, ou si je le modifie, je le récupère avec la clef.
Enfin c'est comme ça que je pensais faire...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager