为什么我得到一个错误,说字符串不包含'Contains'的定义

本文关键字:字符串 包含 定义 Contains 错误 一个 为什么 | 更新日期: 2023-09-27 18:13:51

我有下面的简单方法:

        public static bool IsErrorMessage(String error)
    {
        var isErrorMessage = error.Left(40).Contains("ErrorMessage",StringComparison.CurrentCulture);
        return isErrorMessage;
    }

但是我得到一个错误,说字符串不包含'Contains'的定义,VS想使用System.Linq.Enumerable.Contains代替。

使用。net Framework 4.5, c#, VS 2010,当然我还有一个Using System指令。

为什么我得到一个错误,说字符串不包含'Contains'的定义

没有接受两个参数的String.Contains重载。如果您想使用StringComparison,请使用IndexOf:

bool isErrorMessage = error.Left(40).IndexOf("ErrorMessage", StringComparison.CurrentCulture) > -1;

看起来它更喜欢LINQ扩展方法,因为有两个参数,因为String::Contains只有一个参数。

我认为你需要充实你的扩展方法来发现问题。下面是一个编译示例,可以帮助您开始:

public static class StringExtensions
{
    public static string Left(this string s, int count)
    {
        // your method
        return "";
    }
    public static bool Contains(this string s, string contains, StringComparison comp)
    {
        // your method
        return true;
    }
}
public class Test
{
    public static bool IsErrorMessage(String error)
    {
        var isErrorMessage = error.Left(40).Contains("ErrorMessage", StringComparison.CurrentCulture);
        return isErrorMessage;
    }
}