1.C#、VB.NET-1.C#、VB.NETの違いC#とVB.NETでは文字列分割の挙動で若干の違いがあります。これはVB.NET初学者でもよく間違いますので、しっかり覚えておきましょう。文字列「lowhogemiddlehogehighhogenone」を「hoge」で分割することを考えます。分割後を列挙した場合、以下のような結果になることが目標です。lowmiddlehighnone【VB.NETのみ】String.SplitメソッドとSplit関数の違いVB.NETではString.SplitメソッドとSplit関数の2種類の方法があります。後者のSplit関数はVB独自の記法でVB6時代から継承された関数です。普通にSplit関数を利用すれば問題なく分割することができます。"hoge")lowmiddlehighnoneまた別の機会にも書きますが、本来VB.NETの環境下において、VB6名残の機能は使用しない方が良いと言われていますので、StringクラスのSplitメソッドで書き換えます。すると、結果はどうなるでしょうか。naiyo.Split("hoge")lowogemiddleogeigogenone本来StringクラスのSplitメソッドは、区切り文字をchar型にする必要があります。Framework2.0よりstring型を渡せるようになりましたが、この場合配列で渡す必要があります。VB.NETの場合はVB6ユーザーへ忖度したため、string型でも配列にする必要性を省いてしまいました。結果、string型の一文字目をchar型と勝手に認識するようにして、最初の「h」のみを区切り文字にしてしまったのです。すると、区切られる文字列に「h」が含まれていると、そこまで区切ってしまいます。上記の場合「high」という単語の「h」に反応してしまった形です。この場合は以下のようにstring型の配列で渡す必要があります。string型(配列)をSplitメソッドに渡した場合は、StringSplitOptionsオプションを第二引数に入れないとコンパイルエラーになります。StringSplitOptions.None)なお、C#の場合はstring型を引数に渡すことはできませんので、VB.NETのようなおかしな動作になることはありません。他の方法char型であれば特に不自由なく分割できますが、例のようにstring型だと配列にしてあげれば問題なく分割できます。文字列分割は他にもいくつか方法がありますので、予備知識として少し紹介しておきます(基本はString.Splitメソッドで問題ない)。System.Text.RegularExpression名前空間のRegexクラスによる分割RegexクラスのSplitメソッドでも文字列を分割できます。Stringクラスよりは速度は遅めです。文字列に絶対含まれないchar型の文字が簡単に推測できるなら有用な方法です。Replaceメソッドで一旦区切り文字を適当なchar文字に変換した後にSplitメソッドにそのchar文字を渡す方法です。速度は以外と早く、RegexクラスのSplitメソッドより高速です。",").Split(",")【C#のみ】Microsoft.VisualBasic.Strings.Split関数による分割VBのSplit関数機能を利用して分割する方法です。速度はとてつもなく遅いのでおすすめしません。以下のような処理を考えます。Javascriptからクリップボードを設定はてなブログをはじめよう!sasaki816さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。