[解決済み] 文字列がリスト(文字列)の要素を含むかどうかをチェックする
2022-04-16 06:32:29
質問
次のブロックのコードについて。
For I = 0 To listOfStrings.Count - 1
If myString.Contains(lstOfStrings.Item(I)) Then
Return True
End If
Next
Return False
と出力されます。
ケース1
myString: C:\Files\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: True
ケース2
myString: C:\Files3\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: False
リスト (listOfStrings) はいくつかの項目 (最低 20) を含み、何千もの文字列 (myString など) と照合する必要があります。
このコードを書くのにもっと良い(効率的な)方法はありますか?
どのように解決するのですか?
LINQで、C#を使っています(最近はVBをあまり知りません)。
bool b = listOfStrings.Any(s=>myString.Contains(s));
または(より短く、より効率的ですが、間違いなく、より明確ではありません)。
bool b = listOfStrings.Any(myString.Contains);
もし、等質性をテストするのであれば、次のように見ておくとよいでしょう。
HashSet
などがありますが、これでは部分一致の場合、フラグメントに分割して複雑な順序を追加しない限り、役に立ちません。
update: もし本当に "StartsWith" を意味するのであれば、リストをソートして配列に格納し、それから
Array.BinarySearch
で各項目を検索し、完全一致か部分一致かをルックアップでチェックします。
関連
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] リストに値が存在するかどうかを確認する最速の方法
-
[解決済み] 文字列の一覧から空の文字列を削除する
-
[解決済み] ある文字列が文字列のリストの項目の部分文字列であるかどうかを確認する方法は?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】WebResource.axdとは何ですか?