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
In .NET Core and .NET Framework ≥4.0 there is a generic parse method: Enum.TryParse(“Active”, out StatusEnum myStatus); This also includes C#7’s new inline out variables, so this does the try-parse, conversion to the explicit enum type and initialises+populates the myStatus variable. If you have access to C#7 and the latest .NET this is the best … 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
Ian Mercer posted a similar solution as this on Phil Haack’s blog: foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; } This gets you the item (item.value) and its index (item.i) by using this overload of LINQ’s Select: the second parameter of … Read more
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
Yes, both will give you deferred execution. The difference is that IQueryable<T> is the interface that allows LINQ-to-SQL (LINQ.-to-anything really) to work. So if you further refine your query on an IQueryable<T>, that query will be executed in the database, if possible. For the IEnumerable<T> case, it will be LINQ-to-object, meaning that all objects matching … Read more
Encode public static string Base64Encode(string plainText) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); return System.Convert.ToBase64String(plainTextBytes); } Decode public static string Base64Decode(string base64EncodedData) { var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData); return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); }
Asynchronous programming does “grow” through the code base. It has been compared to a zombie virus. The best solution is to allow it to grow, but sometimes that’s not possible. I have written a few types in my Nito.AsyncEx library for dealing with a partially-asynchronous code base. There’s no solution that works in every situation, … Read more