使用bool isExist = strArrayList.Contains(str, StringComparer.OrdinalIgnoreCase);编译器提示Contains方法没有两个参数的重载
时间: 2024-03-08 19:50:45 浏览: 104
对于`ArrayList`类型,并没有提供具有两个参数的`Contains`方法重载,因此不能直接使用`Contains`方法来进行字符串的比较。可以使用`ArrayList`类的`IndexOf`方法来判断给定字符串是否在`ArrayList`中存在,同时使用`StringComparer.OrdinalIgnoreCase`参数来忽略全角半角的差异。示例代码如下:
```csharp
ArrayList strArrayList = new ArrayList { "hello", "world", "C#开发" };
string str = "C#开发"; // 全角的C#
bool isExist = strArrayList.IndexOf(str) != -1 || strArrayList.Cast<string>().Any(s => s.Equals(str, StringComparison.OrdinalIgnoreCase));
Console.WriteLine(isExist); // 输出True
```
在上述示例代码中,`strArrayList`是给定字符串集合,`str`是需要判断的字符串,`isExist`是一个布尔值,表示`str`是否在`strArrayList`中存在。使用`IndexOf`方法可以得到字符串在`ArrayList`中的索引,如果索引为-1则表示字符串不存在。同时,使用`Cast<string>`方法将`ArrayList`中的元素转换为`string`类型,并使用`Any`方法进行逐个比较,使用`StringComparison.OrdinalIgnoreCase`参数可以忽略全角半角的差异。如果有任意一个元素等于给定字符串,则返回`true`。
阅读全文