[解決済み] リストに文字列を含む要素があるかどうかを確認し、その要素を取得する
2022-04-22 07:23:08
質問
この質問に対する回答を探しているうちに、LINQを利用した類似のものに出会いましたが、使いこなせていないため、十分に理解(つまり実装)できていません。私がしたいことは、基本的には、これです。
- リストのいずれかの要素に特定の文字列が含まれているかどうかを確認する。
- もしそうなら、その要素を取得する。
正直なところ、どうすればいいのかわかりません。私が思いつくのはこれです(もちろん、うまくいきませんが)。
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
うまくいかない理由がわかりました。
-
myList.Contains()
は返しません。true
というのは、リストの要素全体が、私が指定した文字列と一致するかどうかをチェックするからです。 -
myList.IndexOf()
はオカレンスを見つけることができません。なぜなら、今回もそうですが、文字列にマッチする要素をチェックするからです。
それでも、この問題を解決する方法は全く分からないのですが、私のような類似の質問で提案されているように、LINQを使うしかないと思っています。もしそうだとしたら、回答者は彼らの例でLINQを使うことを説明してほしいです(言ったように、私はC#の時代にそれを気にしたことがありません)。よろしくお願いします。
EDIT: 解決策を思いつきました。リストをループして、現在の要素が文字列を含んでいるかどうかをチェックし、現在の要素に等しい文字列を設定するだけです。しかし、これよりも効率的な方法はないのでしょうか?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
解決方法は?
ここでLinqが使えるようになるはずです。
var matchingvalues = myList
.Where(stringToCheck => stringToCheck.Contains(myString));
単に最初にマッチした項目を返したい場合。
var match = myList
.FirstOrDefault(stringToCheck => stringToCheck.Contains(myString));
if(match != null)
//Do stuff
関連
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] ある文字列が特定の単語を含んでいるかどうかを確認するにはどうすればよいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] なぜ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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み] 関数を終了するには?
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない