5

アイテムのリストがあり、「id」が一意であるが必ずしも連続しているとは限らない場合、List または IEnumerable のいずれかで前のエンティティを見つける方法はありますか?

だから私は人々のリストを持っているかもしれません、そして彼らはそれぞれIDを持っていて、私が知らない順序でソートされています. 私が得るのは、リストと人のIDだけです。

次に、提供されたIDに前の人を取得する必要があります。

これを行うための素敵な LINQ の方法はありますか、または単純にレコードを見つけて、ForEach で前のレコードを取得しますか?

編集 これを見つけたばかりですが、これが最善のアプローチですか?

LINQで前項目との差分を計算する

4

1 に答える 1

16

これが必要だと思います

 items.TakeWhile(x => x.id != id).LastOrDefault();
  • Enumerable.TakeWhileメソッドは、指定された条件が true である限り、シーケンスから要素を返し、残りの要素をスキップします。
  • 最後のまたはそれdefaultから取得します。
于 2013-06-21T04:44:09.527 に答える