Ma liste est définie comme suit:
string currName = someFunctionOf (firstNames);
3 Réponses :
quelque chose comme ça?
Nope, le numéro retourné est moins i> que l'argument. msdn.microsoft.com/en-us/library/zd1bc8e5.aspx
Essayez ceci
Il devrait être int arandompos = randnum.next (prénoms.Count - 1); Sinon, vous pourriez obtenir une exception hors de portée lorsque le nombre aléatoire choisit la valeur maximale.
@JEBLI qui n'est pas correct - il renvoie un nombre aléatoire moins b> que le maximum. Donc randnum.next (prénomes.count); code> fonctionne comme prévu.
Voici une approche différente de celle des trois postes, juste pour une variété et un peu de plaisir avec LINQ:
string aName = firstNames.OrderBy(s => Guid.NewGuid()).First();
-1 pour l'obscurité, +1 pour l'intelligence et +1 pour appliquer des astuces SQL.
Je mentionnerais peut-être que cette approche est difficile à lire, lente et ne doit pas être utilisée dans le code réel.
@Eds mais amusant et assez intelligent
Points bonus - Faites une méthode d'extension pour faire cela!