Question: Im trying to split a String into an Array. In PHP I normally use explode -> profit. But I cant get it to work in C# ...

```
string fuel = "08,02,22,97,38,15";
string[] numbers = fuel.Split(new char[] { ',' });

```

He just splits on every character, fe: numbers[0]=0 and numbers[1]=8

What am I doing wrong?

EDIT: I used the fuel string as fuel[0] which gives the first char, hence the mistake. It shouldve been numbers[0] stupid mistake!

Answer: 
This almost works for me :)

```
#include <stdio.h>

#define NARGS2(_1, N, ...) N
#define NARGS(...) NARGS2(__VA_ARGS__, 1, 0)
#define TRIPLELOOP(...)                         \
      do {                                      \
        if (NARGS(__VA_ARGS__)) {               \
          int i, j, k;                          \
          for (i=0; i<2; i++) {                 \
            for (j=0; j<2; j++) {               \
              for (k=0; k<2; k++) {             \
                __VA_ARGS__;                    \
              }                                 \
            }                                   \
          }                                     \
        } else {                                \
          printf("NO ARGS");                    \
        }                                       \
      } while (0)

int main(void) {
  TRIPLELOOP(printf("haha"); puts("!"));
  TRIPLELOOP();
}

```

It also [works at ideone](http://ideone.com/8j2aj).
Actually you cannot do that because macro can be defined only once. You can use some trick to achieve that:

```
#define TRIPLE_LOOP(CONDITION, ...)\
if(CONDITION) {\
for(...) for(...) for(...) { __VA_ARGS__; }\
} \
else {\
SOME_OTHER_CODE \
}

```

Usage:

```
TRIPLE_LOOP(true, printf("muhahaha"));  // `true` can be 1
TRIPLE_LOOP(false);  // `false` can be 0

```

But make sure that you always pass a proper `bool` variable `true`/`false` while passing argument.