- Home /
Iterating through an enumerated type
I have a enumerated type like this
enun myEnum {
a = 0,
b = 1,
.etc
}
var foo : myEnum;
How do I go about progressing to the next value? foo++ does not work. Also, is there anyway to detect how many values are in the enumerated type to prevent going out of bounds.
Thanks
Answer by Eric5h5 · Oct 07, 2011 at 03:25 AM
Use System.Enum.GetValues().Length to see how many items there are.
Answer by syclamoth · Sep 15, 2011 at 01:44 AM
If you define your enum like this-
enum myEnum {a, b, c, d, e /* etc */}
Then (in C# at least) you should be able to use the ++ operator (and the --, for that matter), because the numbers are implicitly set in the enum. By explicitly setting the numbers, you make it impossible to operate on them in this way, because there is no way of knowing that the next number up will equate to anything, and so the operator is disallowed.
Answer by tomarcafe · Feb 23, 2013 at 08:51 PM
just searched for same thing, and ended up with following snippet.
enum SevenDeadlySins { .. }
function Confess(sin : SevenDeadlySins) { .. }
for( var i:int in SevenDeadlySins.GetValues(SevenDeadlySins) ) {
Confess( parseInt(i) ) );
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612213137im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Making a List for Inventory System, Got an error in finding constructors and variables 1 Answer
Convert String into KeyCode (UnityScript) 0 Answers
Need help with enum and stuff (right, left click) in JavaScript 0 Answers
Finding the length of an enum in a different class 1 Answer
Namespace declaration for UnityScript or Unity Javascript 0 Answers