Group By Multiple Columns
Use an anonymous type. Eg group x by new { x.Column1, x.Column2 }
Use an anonymous type. Eg group x by new { x.Column1, x.Column2 }
If you are happy to have a dependency upon the System.Web.Helpers assembly, then you can use the Json class: dynamic data = Json.Decode(json); It is included with the MVC framework as an additional download to the .NET 4 framework. Be sure to give Vlad an upvote if that’s helpful! However if you cannot assume the … Read more
Since we all love one-liners … this one depends on the Newtonsoft NuGet package, which is popular and better than the default serializer. Newtonsoft.Json.JsonConvert.SerializeObject(new {foo = “bar”}) Documentation: Serializing and Deserializing JSON
The shortest way is by adding the ObsoleteAttribute as an attribute to the method. Make sure to include an appropriate explanation: [Obsolete(“Method1 is deprecated, please use Method2 instead.”)] public void Method1() { … } You can also cause the compilation to fail, treating the usage of the method as an error instead of warning, if … Read more
TL; DR run this in the Package Manager Console: Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r More information This problem is not related to Visual Studio itself, so answers suggesting adding build steps to copy files over are rather a workaround. Same with adding compiler binaries manually to the project. The Roslyn compiler comes from a NuGet package and … Read more
I heard LINQ is the new black, so here’s my attempt using LINQ: private static Random random = new Random(); public static string RandomString(int length) { const string chars = “ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”; return new string(Enumerable.Repeat(chars, length) .Select(s => s[random.Next(s.Length)]).ToArray()); } (Note: The use of the Random class makes this unsuitable for anything security related, such as … Read more
You need to use reflection to get the method to start with, then “construct” it by supplying type arguments with MakeGenericMethod: MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod)); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null); For a static method, pass null as the first argument to Invoke. That’s nothing to do with generic methods – it’s just normal reflection. … Read more
When using async and await the compiler generates a state machine in the background. Here’s an example on which I hope I can explain some of the high-level details that are going on: public async Task MyMethodAsync() { Task<int> longRunningTask = LongRunningOperationAsync(); // independent work which doesn’t need the result of LongRunningOperationAsync can be done … Read more
There are several ways to perform HTTP GET and POST requests: Method A: HttpClient (Preferred) Available in: .NET Framework 4.5+, .NET Standard 1.1+, and .NET Core 1.0+. It is currently the preferred approach, and is asynchronous and high performance. Use the built-in version in most cases, but for very old platforms there is a NuGet … Read more
Uri has a constructor that should do this for you: new Uri(Uri baseUri, string relativeUri) Here’s an example: Uri baseUri = new Uri(“http://www.contoso.com”); Uri myUri = new Uri(baseUri, “catalog/shownew.htm”); Note from editor: Beware, this method does not work as expected. It can cut part of baseUri in some cases. See comments and other answers.