Create Generic method constraining T to an Enum

Since Enum Type implements IConvertible interface, a better implementation should be something like this: public T GetEnumFromString<T>(string value) where T : struct, IConvertible { if (!typeof(T).IsEnum) { throw new ArgumentException(“T must be an enumerated type”); } //… } This will still permit passing of value types implementing IConvertible. The chances are rare though.

LINQ’s Distinct() on a particular property

What if I want to obtain a distinct list based on one or more properties? Simple! You want to group them and pick a winner out of the group. List<Person> distinctPeople = allPeople .GroupBy(p => p.PersonId) .Select(g => g.First()) .ToList(); If you want to define groups on multiple properties, here’s how: List<Person> distinctPeople = allPeople … Read more

Send HTTP POST request in .NET

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

Path.Combine for URLs?

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.

Hidden Features of C#? [closed]

This isn’t C# per se, but I haven’t seen anyone who really uses System.IO.Path.Combine() to the extent that they should. In fact, the whole Path class is really useful, but no one uses it! I’m willing to bet that every production app has the following code, even though it shouldn’t: string path = dir + … Read more

Why is Dictionary preferred over Hashtable in C#?

For what it’s worth, a Dictionary is (conceptually) a hash table. If you meant “why do we use the Dictionary<TKey, TValue> class instead of the Hashtable class?”, then it’s an easy answer: Dictionary<TKey, TValue> is a generic type, Hashtable is not. That means you get type safety with Dictionary<TKey, TValue>, because you can’t insert any … Read more

‘Static readonly’ vs. ‘const’

public static readonly fields are a little unusual; public static properties (with only a get) would be more common (perhaps backed by a private static readonly field). const values are burned directly into the call-site; this is double edged: it is useless if the value is fetched at runtime, perhaps from config if you change … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)