0

我有以下简单的方法:

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

但是我收到一条错误消息,指出字符串不包含“包含”的定义,而 VS 想改用 System.Linq.Enumerable.Contains。

使用 .NET Framework 4.5、C#、VS 2010,当然我有一个 using System 指令。

4

2 回答 2

6

没有重载String.Contains需要两个参数。如果要使用 a StringComparison,请使用IndexOf

bool isErrorMessage = error.Left(40).IndexOf("ErrorMessage", StringComparison.CurrentCulture) > -1;
于 2013-05-16T16:02:04.760 回答
2

由于有两个参数,看起来它更喜欢 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;
    }
}
于 2013-05-16T15:59:49.277 回答