[解決済み】LINQでリスト内の項目を検索する
2022-04-19 12:28:58
質問
ここでは、文字列の一覧から項目を探す簡単な例を紹介します。通常、私は
for
ループや匿名デリゲートでこのような処理を行います。
int GetItemIndex(string search)
{
int found = -1;
if ( _list != null )
{
foreach (string item in _list) // _list is an instance of List<string>
{
found++;
if ( string.Equals(search, item) )
{
break;
}
}
/* Use an anonymous delegate
string foundItem = _list.Find( delegate(string item) {
found++;
return string.Equals(search, item);
});
*/
}
return found;
}
LINQは初めてです。LINQを使ってリストの中の項目を見つけることはできますか?可能であれば、どのように?
どのように解決するのですか?
いくつかの方法があります(ただし、これは ではない があります。)
-
シングル は結果をひとつだけ返しますが、 ひとつも見つからなかったり複数見つかったりした場合は例外をスローします (これはあなたが望むことであってもそうでなくてもかまいません)。
string search = "lookforme"; List<string> myList = new List<string>(); string result = myList.Single(s => s == search);
注意点
SingleOrDefault()
は同じ動作をしますが、例外を発生させる代わりに、参照型の場合はnullを、値型の場合はデフォルト値を返します。
-
どこ は条件に一致するすべての項目を返すので、1つの要素でIEnumerable<string>を取得することができます。
IEnumerable<string> results = myList.Where(s => s == search);
-
最初 は、条件に一致する最初の項目を返します。
string result = myList.First(s => s == search);
注意点
FirstOrDefault()
は同じ動作をしますが、例外を発生させる代わりに、参照型の場合はnullを、値型の場合はデフォルト値を返します。
関連
-
[解決済み] LINQを使用してList<T>から要素を削除する
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] LINQのGroup by
-
[解決済み] DataTableに対するLINQクエリ
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み] LINQ集計アルゴリズム説明
-
[解決済み] LINQ を使用して、ある List<> にある項目を別の List<> にない項目として取得する。
-
[解決済み] LINQを使用してList<string>内のすべての文字列を結合する
-
[解決済み] LINQは結果が空の場合、何を返すのですか?
-
[解決済み] LINQ を使用して、オブジェクトのリストから一意のプロパティのリストを取得するにはどうすればよいですか?
最新
-
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'プロパティを参照してください [重複]。
-
[解決済み】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のビルドにエラーが発生する
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】リスト内のアイテムのインデックスを一度に取得するにはどうすればいいですか?