Enums are a great way to define a set of named constants in C#, but what if you need to iterate over all values dynamically? You can use** Enum.GetValues()** to loop through an enum without hardcoding values.
enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } foreach (Days day in Enum.GetValues(typeof(Days))) { Console.WriteLine(day); }
This would output the following:
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Alternative: Using Enum.GetNames() If you only need the string names, use Enum.GetNames() instead:
foreach (string name in Enum.GetNames(typeof(Days))) { Console.WriteLine(name); }
When working with URLs in C#, encoding is essential to ensure that special characters (like spaces, ?, &, and =) don’t break the URL structure. The recommended way to encode a string for a URL is by using Uri.EscapeDataString(), which converts unsafe characters into their percent-encoded equivalents.
string rawText = "hello world!"; string encodedText = Uri.EscapeDataString(rawText); Console.WriteLine(encodedText); // Output: hello%20world%21
This method encodes spaces as %20, making it ideal for query parameters.
For ASP.NET applications, you can also use HttpUtility.UrlEncode() (from System.Web), which encodes spaces as +:
using System.Web; string encodedText = HttpUtility.UrlEncode("hello world!"); Console.WriteLine(encodedText); // Output: hello+world%21
For .NET Core and later, Uri.EscapeDataString() is the preferred choice.
XML (Extensible Markup Language) is a widely used format for storing and transporting data.
In C#, you can create XML files efficiently using the XmlWriter and XDocument classes. This guide covers both methods with practical examples.
XmlWriter
XDocument
XmlWriter provides a fast and memory-efficient way to generate XML files by writing elements sequentially.
using System; using System.Xml; class Program { static void Main() { using (XmlWriter writer = XmlWriter.Create("person.xml")) { writer.WriteStartDocument(); writer.WriteStartElement("Person"); writer.WriteElementString("FirstName", "John"); writer.WriteElementString("LastName", "Doe"); writer.WriteElementString("Age", "30"); writer.WriteEndElement(); writer.WriteEndDocument(); } Console.WriteLine("XML file created successfully."); } }
Output (person.xml):
person.xml
<?xml version="1.0" encoding="utf-8"?> <Person> <FirstName>John</FirstName> <LastName>Doe</LastName> <Age>30</Age> </Person>
The XDocument class from LINQ to XML provides a more readable and flexible way to create XML files.
using System; using System.Xml.Linq; class Program { static void Main() { XDocument doc = new XDocument( new XElement("Person", new XElement("FirstName", "John"), new XElement("LastName", "Doe"), new XElement("Age", "30") ) ); doc.Save("person.xml"); Console.WriteLine("XML file created successfully."); } }
This approach is ideal for working with complex XML structures and integrating LINQ queries.
Writing XML files in C# is straightforward with XmlWriter and XDocument. Choose the method that best suits your needs for performance, readability, and maintainability.
In C#, you can format an integer with commas (thousands separator) using ToString with a format specifier.
int number = 1234567; string formattedNumber = number.ToString("N0"); // "1,234,567" Console.WriteLine(formattedNumber);
Explanation:
"N0": The "N" format specifier stands for Number, and "0" means no decimal places. The output depends on the culture settings, so in regions where , is the decimal separator, you might get 1.234.567.
Alternative:
You can also specify culture explicitly if you need a specific format:
using System.Globalization; int number = 1234567; string formattedNumber = number.ToString("N0", CultureInfo.InvariantCulture); Console.WriteLine(formattedNumber); // "1,234,567"
Register for my free weekly newsletter.