Обработка различных и ненулевых значений является общим требованием в программировании на C#. Независимо от того, работаете ли вы с коллекциями, базами данных или другими источниками данных, важно иметь эффективные методы фильтрации повторяющихся значений и соответствующей обработки нулевых значений. В этой статье мы рассмотрим различные методы и приведем примеры кода, которые помогут вам эффективно выполнить эту задачу.
- Использование метода Distinct LINQ:
LINQ (Language-Integrated Query) предоставляет мощный способ работы с коллекциями в C#. МетодDistinct— это один из операторов LINQ, который можно использовать для фильтрации повторяющихся значений из коллекции.
List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
IEnumerable<int> distinctNumbers = numbers.Distinct();
foreach (int number in distinctNumbers)
{
Console.WriteLine(number);
}
Выход:
1
2
3
4
5
- Использование HashSet для различных значений.
ИспользованиеHashSet— это эффективный способ хранения различных значений. Добавляя значения вHashSet, вы автоматически устраняете дубликаты.
List<string> names = new List<string> { "John", "Jane", "John", "Alice", "Jane", "Bob" };
HashSet<string> distinctNames = new HashSet<string>(names);
foreach (string name in distinctNames)
{
Console.WriteLine(name);
}
Выход:
John
Jane
Alice
Bob
- Фильтрация значений, отличных от NULL.
Чтобы отфильтровать значения NULL из коллекции, вы можете использовать метод LINQWhereв сочетании с оператором объединения NULL (??).
List<string> fruits = new List<string> { "Apple", null, "Orange", "Banana", null, "Mango" };
IEnumerable<string> nonNullFruits = fruits.Where(fruit => fruit != null);
foreach (string fruit in nonNullFruits)
{
Console.WriteLine(fruit);
}
Выход:
Apple
Orange
Banana
Mango
- Использование оператора, допускающего значение NULL (
?.) для проверки значений NULL:
В C# 6 появился оператор, условный значение NULL (?.), который упрощает проверку значения NULL. проверка. Вы можете использовать его для доступа к свойствам или вызовам методов объекта, не беспокоясь о нулевых ссылках.
string name = GetFullName();
string firstName = name?.Split(' ')[0];
Console.WriteLine(firstName);
Вывод (при условии, что GetFullName()возвращает «Джон Доу»):
John
В этой статье мы рассмотрели различные методы обработки различных и ненулевых значений в C#. Используя такие методы, как метод LINQ Distinct, HashSetи операторы проверки нуля, вы можете эффективно манипулировать данными и выполнять эффективные операции. Понимание этих методов расширит ваши возможности работы с коллекциями и обеспечит целостность ваших данных.