What is the difference between StringBuilder and String in C#? When would you prefer to use one over the other? Explain the concept of dependency injection in .NET Core. How does it improve application design? What is the purpose of the IDisposable interface? Can you provide an example of when and how to implement it? 4. How does async/await work in C#? What are the benefits of using asynchronous programming?