C# 中 Distinct 的使用攻略
在 C# 中,Distinct 是一个常用的 LINQ 扩展方法,用于从集合中筛选出不同的元素。本攻略将介绍如何使用 C# 中的 Distinct 方法提供两个示例说明。
步骤一:导入命名空间
在使用 Distinct 方法之前,需要先导入 System.Linq 命名空间。
using System.Linq;
步骤二:使用 Distinct 方法
- 使用 Distinct 方法筛选不同的元素
List<int> numbers = new List<int> { 1, 2, 3, 2, 4, 5, 3 };
var distinctNumbers numbers.Distinct();
- 使用 Distinct 方法和自定义比较器筛选不同的元素
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonComparer : IEqualityComparer<Person>
{
public bool Equals(Person x, Person y)
{
return x.Name == y.Name && x.Age == y.Age;
}
public int GetHashCode(Person obj)
{
return obj.Name.GetHashCode() ^ obj.Age.GetHashCode();
}
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Charlie", Age = 40 }
};
var distinctPeople = people.Distinct(new PersonComparer());
示例一:使用 Distinct 方法筛选不同元素
以下是一个使用 Distinct 方法筛选不同的元素的示例:
List<int> numbers = new List<int> { 1, 2, 3, 2, 4, 5, 3 };
var distinctNumbers = numbers.Distinct();
foreachvar number in distinctNumbers)
{
Console.WriteLine(number);
}
该示例中,使用 Distinct 方法从一个整数列表中筛选出不同的元素,并使用 foreach 循环遍历输出。
示例二:使用 Distinct 方法和自定义比较器筛选不同的元素
以下是一个使用 Distinct 方法和自定义比较器筛选不同的元素的示例:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonComparer : IEqualityComparer<Person>
{
public bool Equals(Person x, Person y)
{
return x.Name == y.Name && x.Age == y.Age;
}
public int GetHashCode(Person obj)
{
return obj.Name.GetHashCode() ^ obj.Age.GetHashCode();
}
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Charlie", Age = 40 }
};
var distinctPeople = people.Distinct(new PersonComparer());
foreach (var person in distinctPeople)
{
Console.WriteLine(person.Name + " " + person.Age);
}
该示例中,使用 Distinct 方法和自定义比较器从一个 Person 对象列表中筛选出不同的元素,并使用 foreach 循环遍历输出。
结论
在 C# 中,Distinct 是一个常用的 LINQ 扩展方法,用于从集合中筛选出不同的元素。本攻略介绍了如何使用 C# 中的 Distinct 方法提供了两个示例说明。开发者可以根据自己的需求使用 Distinct 方法进行集合元素的筛选。