古いvbのleft(string, length)関数の.NETでの同等品
2023-10-01 10:06:28
質問
非.NETプログラマとして、私は古いVisual Basic関数の.NET版に相当するものを探しています。
left(string, length)
. それは、任意の長さの文字列に対して動作するという点で、怠惰なものでした。予想通り
left("foobar", 3) = "foo"
を使う一方で、最も役に立つのは
left("f", 3) = "f"
.
.NETでは
string.Substring(index, length)
は範囲外のすべてに対して例外を投げます。Javaでは、Apache-Commonsのlang.StringUtilsをいつも手元に置いていました。Googleでは、文字列関数を検索してもあまりヒットしません。
ノルドリン - わー、VB.NETの拡張機能、ありがとうございます! 私の最初の出会いは、C#で同じことをするのに数秒かかりましたが。
public static class Utils
{
public static string Left(this string str, int length)
{
return str.Substring(0, Math.Min(length, str.Length));
}
}
静的なクラスとメソッド、そして
this
キーワードに注目してください。そうです、これらは
"foobar".Left(3)
. また
MSDNにおけるC#の拡張機能
.
どのように解決するのですか?
ここに、その仕事をするための拡張メソッドがあります。
<System.Runtime.CompilerServices.Extension()> _
Public Function Left(ByVal str As String, ByVal length As Integer) As String
Return str.Substring(0, Math.Min(str.Length, length))
End Function
つまり、昔のVBのように
Left
関数(つまり
Left("foobar", 3)
) を使うか、新しいVB.NETの構文、すなわち
Dim foo = "f".Left(3) ' foo = "f"
Dim bar = "bar123".Left(3) ' bar = "bar"
関連
-
[解決済み] .NETの文字列を切り捨てるにはどうすればよいですか?
-
[解決済み] .NETで文字列を改行で分割する最も簡単な方法とは?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] C#の文字列の前にある@は何ですか?
-
[解決済み] C#を使用して.NETで現在のユーザー名を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。