День 1454. #TipsAndTricks
Короткие Советы и Трюки в C#
1. Регистронезависимый Словарь
Указав StringComparer в конструкторе словаря, вы можете использовать регистронезависимые ключи для доступа к значениям:
var dict = new Dictionary<string, object>
(StringComparer.CurrentCultureIgnoreCase)
{
["home"] = "casa",
["BRIDGE"] = "ponte"
};
Console.WriteLine(dict["Home"]);
Console.WriteLine(dict["bridge"]);
2. Sort() или OrderBy()
Оба метода сортируют элементы списка. Но есть различия.
Sort()
- сортировка «на месте» (пока, иммутабельность);
- сортировка по умолчанию.
OrderBy()
- создаёт новый список;
- можно использовать правило сортировки.
List<int> list = new() { 3, 1, 6, 2, 8};
list.Sort();
var sortedList =
list.OrderByDescending(_ => _);
3. String.IsNullOrEmpty или String.IsNullOrWhiteSpace
Если вам нужно проверить строку, введённую пользователем, имейте в виду, что пользователь может ввести символы, которые не будут «пойманы» методом String.IsNullOrEmpty():
NOE NOWS
"hi" ❌ ❌
null ✅ ✅
"" ✅ ✅
" " ❌ ✅
"\n" ❌ ✅
"\t" ❌ ✅
"\t \n" ❌ ✅
4. Интерполяция строк с помощью FormattableString
Если вы используете интерполяцию для обработки случаев, когда значение изменяется в зависимости от культуры:
- храните строку как FormattableString;
- форматируйте её, используя IFormatterProvider (или CultureInfo).
var dt = DateTime.Now;
FormattableString fs = $"{dt:dddd}";
fs.ToString();
//Monday
fs.ToString(new CultureInfo("es-ES");
// lunes
fs.ToString(new CultureInfo("ru-RU");
// понедельник
Источник: https://twitter.com/BelloneDavide/