[解決済み] Foreachループ、ループの最後の反復がどれかを判断する
2022-02-15 23:21:17
質問
を持っています。
foreach
ループから最後の項目が選択されたときに、何らかのロジックを実行する必要があります。
List
, 例:
foreach (Item result in Model.Results)
{
//if current result is the last item in Model.Results
//then do something in the code
}
forループやカウンターを使わずに、どのループが最後かを知ることはできますか?
どのように解決するのですか?
もし、最後の要素で何かをする必要があるだけなら(何かではなく 異なる LINQを使用することで、最後の要素を使用することができます。
Item last = Model.Results.Last();
// do something with last
もし、最後の要素で何か違うことをする必要があるのなら、次のようなものが必要です。
Item last = Model.Results.Last();
foreach (Item result in Model.Results)
{
// do something with each item
if (result.Equals(last))
{
// do something different with the last item
}
else
{
// do something different with every item but the last
}
}
が返す項目と同じものであることを確認するためには、おそらくカスタムの比較器を書く必要があるでしょうが。
Last()
.
この方法は、以下のように慎重に使用する必要があります。
Last
は、コレクションを繰り返し処理しなければならないかもしれません。小さなコレクションでは問題にならないかもしれませんが、大きくなるとパフォーマンスに影響が出るかもしれません。また、リストに重複する項目がある場合にも失敗します。このような場合は、次のような方法がより適切でしょう。
int totalCount = result.Count();
for (int count = 0; count < totalCount; count++)
{
Item result = Model.Results[count];
// do something with each item
if ((count + 1) == totalCount)
{
// do something different with the last item
}
else
{
// do something different with every item but the last
}
}
関連
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] foreachループの現在の反復処理のインデックスを取得するにはどうすればよいですか?
-
[解決済み] foreachループの最初と最後の繰り返しを決定する方法は?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] foreachループの現在の反復処理のインデックスを取得するにはどうすればよいですか?