C#: Contains 方法
在C#中,当你在 List<T>、Array 或其他集合类型中使用 Contains 方法时,检查一个元素是否存在于集合中,需要确保传递给 Contains 方法的集合本身不为 null,并且你想要检查的元素(即参数)也不为 null,除非集合允许包含 null 值。
1、确保集合不为null
首先,你需要确保你在调用 Contains 方法之前检查集合是否为 null。如果集合可能为 null,你应该先进行空值检查:
List<string> myList = GetMyList(); // 假设这个方法可能返回null
if (myList != null)
{
if (myList.Contains("someValue"))
{
// 执行相关操作
}
}
else
{
Console.WriteLine("列表是null");
}
2、确保参数不为null
如果你的集合不允许包含 null 值,你也需要确保传递给 Contains 的参数不为 null。例如,如果你正在检查一个字符串列表:
string valueToCheck = "someValue"; // 确保这个变量不是null
if (valueToCheck != null && myList.Contains(valueToCheck))
{
// 执行相关操作
}
else
{
Console.WriteLine("值不存在或列表是null");
}
3、处理可能的异常
在某些情况下,如果你正在使用自定义对象或者实现了自定义的 Equals 方法,并且你确定集合可能包含 null 值,你可以选择不检查参数是否为 null,因为 Contains 方法通常会安全地处理这种情况。例如:
List<MyClass> myList = GetMyList(); // 假设MyClass的实例可能为null
MyClass itemToCheck = new MyClass(); // 假设这个实例不为null,但它的某些属性可能使得它在列表中不被视为相等(取决于Equals实现)
if (myList != null && myList.Contains(itemToCheck))
{
// 执行相关操作
}
else
{
Console.WriteLine("项不存在或列表是null");
}
