18

これがバグではない場合、誰かがこの動作の背後にある理由を説明できますか?実際、奇数の文字はすべてfalseを返すようです。

string test = "aaaaaaaaaaaaaaaaaaaa";
Console.WriteLine(test.StartsWith("aa"));
Console.WriteLine(test.StartsWith("aaa"));
Console.WriteLine(test.StartsWith("aaaa"));
Console.WriteLine(test.StartsWith("aaaaa"));
Console.WriteLine(test.StartsWith("aaaaaa"));
Console.WriteLine(test.StartsWith("aaaaaaa"));

デンマークのシステムで実行すると、次の出力が得られます。

True
False
True
False
True
False
4

1 に答える 1

22

これは確かにあなたの現在の文化によるものです。あなたはデンマーク語で、aaが文字と見なされている可能性があります。文化を変えようとすると..またはケースを変えようとすると、うまくいくでしょう。

ハンガリーの文化や手紙の連想と同じような行動を覚えていると思います

デンマーク語のテキストに関するStringStartsWith()の問題をご覧ください

例:

using System;
using System.Globalization;

namespace Demo
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK");
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
            string test = "aaaaaaaaaaaaaaaaaaaa";
            Console.WriteLine(test.StartsWith("aa"));
            Console.WriteLine(test.StartsWith("aaa"));
            Console.WriteLine(test.StartsWith("aaaa"));
            Console.WriteLine(test.StartsWith("aaaaa"));
            Console.WriteLine(test.StartsWith("aaaaaa"));
            Console.WriteLine(test.StartsWith("aaaaaaa"));
        }
    }
}

これは、OPが主張するものを印刷します。

于 2013-03-21T12:36:51.367 に答える