0

私は以下の簡単な方法を持っています:

        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 ディレクティブがあります。

4

2 に答える 2

2

String::Contains には 1 つのパラメーターしかないため、2 つのパラメーターのために LINQ 拡張メソッドを優先しているように見えます。

問題を発見するには、拡張メソッドを具体化する必要があると思います。以下は、開始するためのコンパイル例です。

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 に答える