Я не знаком с .NET, но у меня возникает ряд сомнений. Во-первых, может быть нет такой конструкии, как while...do, а есть конструкиця просто while. Во-вторых, мне представляется, что как и в обычном С++ знак оператора = означает присваивание, а оператор сравнения имеет вид ==