added csharp solution and improve others