C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.83229 の関連記事表示

<< 0 >>
■83229  Re[1]: Listオブジェクトに格納されたDataオブジェクトの削除
□投稿者/ 魔界の仮面弁士 -(2017/03/14(Tue) 03:32:41)
    No83220 (rotto さん) に返信
    > 【質問01】
    > Listオブジェクトに格納された中で、最も古い日付が含まれる
    > Data型オブジェクトを削除したいのですが
    > コードでどのように書けばよいのでしょうか?

    たとえば
     list_data.Remove(list_data.OrderBy(_ => _.Hiduke).First());
    のように書けます。これにより最古の 1 件が削除されます。

    この方法では常に「1 件」を削除しようとするため、元のデータが 3 件ではなく
    0 件であった場合は失敗します。元データが存在するかどうか、
    if(list_data.Any()) { } などで事前チェックを行ってください。


    また、「最古の日付」を持つ Data が複数存在した場合には、
    削除候補レコードが複数件存在することになります。
    そのような場合は、下記のように書くことできます。

     string min = list_data.Min(_ => _.Hiduke);
     for (int i = list_data.Count - 1; i >= 0; i--)
     {
      if(list_data[i].Hiduke == min)
      {
       list_data.RemoveAt(i);
      }
     }



    > 【質問02】
    > Listオブジェクトに格納された中で、最も古い日付のみを
    > 削除する場合は、どのようにコードで書けばよいのでしょうか?

    質問01 との違いが分からないのですが、先に書いたように
     Data oldData = list_data.OrderBy(_ => _.Hiduke).First();
    で最古の日付を持つ Data が手に入ります(日付は oldData.Hiduke)ので、
    それを削除すれば良いかと。
記事No.83220 のレス /過去ログ142より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -