📌  相关文章
📜  c# 值是否存在于列表中 - C# (1)

📅  最后修改于: 2023-12-03 14:39:45.254000             🧑  作者: Mango

C# 值是否存在于列表中

有时候,在 C# 编程中我们需要判断一个值是否存在于列表(List)中。这个需要用到一些内置的方法。

判断值是否存在于列表中

我们可以使用 List 类型中的 Contains() 方法来判断一个元素是否存在于列表中。这个方法的参数是一个待查找的元素值,返回值是一个布尔值,表示该元素是否在列表中。

以下是一个示例代码:

List<int> lstNumbers = new List<int>() { 1, 2, 3, 4, 5 };
int searchValue = 3;

if (lstNumbers.Contains(searchValue))
{
    Console.WriteLine($"列表中包含了值 {searchValue}。");
}
else
{
    Console.WriteLine($"列表中不包含值 {searchValue}。");
}

输出结果是:列表中包含了值 3.

判断值是否存在于列表中(自定义对象)

如果你的列表中是一组自定义对象(例如,一个学生列表),你需要重写自定义对象中的 Equals() 方法。这个方法需要用到自定义对象中代表其唯一性的属性。

以下是一个示例代码:

public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
    public int Grade { get; set; }

    public override bool Equals(object obj)
    {
        if (obj == null)
        {
            return false;
        }
        Student s = obj as Student;
        if (s == null)
        {
            return false;
        }
        return (s.StudentId == this.StudentId);
    }

    public override int GetHashCode()
    {
        return this.StudentId.GetHashCode();
    }
}

List<Student> lstStudents = new List<Student>() {
    new Student() { StudentId = 1, Name = "Alice", Grade = 90 },
    new Student() { StudentId = 2, Name = "Bob", Grade = 80 },
    new Student() { StudentId = 3, Name = "Charlie", Grade = 95 }
};

Student searchStudent = new Student() { StudentId = 2, Name = "Bob", Grade = 80 };
if (lstStudents.Contains(searchStudent))
{
    Console.WriteLine($"列表中包含了学生 {searchStudent.Name}。");
}
else
{
    Console.WriteLine($"列表中不包含学生 {searchStudent.Name}。");
}

输出结果是:列表中包含了学生 Bob.

总结

判断一个值是否存在于列表中是 C# 编程中十分常见的需求。使用 List 类型中的 Contains() 方法可以很方便地实现这个功能。但如果是一组自定义对象,需要重写 Equals() 方法来比较对象的唯一性。