为什么c#编译器说string没有' Contains '方法?
本文关键字:方法 Contains 没有 编译器 string 为什么 | 更新日期: 2023-09-27 18:01:59
为什么c#编译器说string没有Contains
方法?
-
errors
对象为List<Error>
-
Error.Message
即string
对于这个语句
Assert.True(errors.Any(e => e.Message.Contains("hash value",
StringComparison.OrdinalIgnoreCase)));
编译器说:
'string'没有包含'Contains'的定义,并且最佳扩展方法重载
System.Linq.Queryable.Contains<TSource>(System.Linq.IQueryable<TSource>, TSource, System.Collections.Generic.IEqualityComparer<TSource>)
有一些无效参数
对于这个语句,编译器是满意的:
Assert.True(errors.Any(e => e.Message.IndexOf("hash value",
StringComparison.OrdinalIgnoreCase) >= 0));
你是是c#编译器对使用哪个
Contains
感到困惑,还是我?
。
正确的方法是IndexOf()
,而不是Contains()
。只有一个string.Contains()
重载(如果可以这样称呼它的话),并且它不接受StringComparison
参数。