[解決済み】Foreachループ、ループの最後の反復がどれかを判断する
2022-04-02 03:10:49
質問
を持っています。
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み] 関数を終了するには?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] foreachループの現在の反復処理のインデックスを取得するにはどうすればよいですか?