私はこのコードスニペットを持っています:
DataTable table = new DataTable();
table.Columns.Add("artikalartikaltip");
table.Columns.Add("artikaljedinicamjere");
DataColumn col1 = table.Columns["ArtikalArtikalTip"];
DataColumn col2 = table.Columns["ArtikalJedinicaMjere"];
このコードを実行すると、col1 は要求された DataColumn オブジェクトを取得しますが、col2 は null です。
文字列を ArtikaljedinicaMjere (小文字の J に注意) に変更すると、col2 はその列を取得します。
犯人は、hr-HR (クロアチア語) に設定されている現在の文化であると思われます。クロアチア語には、Lj という文字が 1 つあります。しかし、ToCharArray() メソッドを呼び出すと、小文字とキャメルケースのバリアントで同じ数の文字が得られます。
何が起こっているのか、このコレクションでインデクサーがどのように機能するのかを誰かが説明できますか?