-1

こんにちは、私はこの予約オブジェクトを持っています

Booking abc = new Booking { date = DateTime.Today, timeslot= timeslot[1], venue = venue};
waiter xyz = new waiter { id = 1, name = "xyz" };
xyz.bookedList = new List<Booking>();
xyz.bookedList.Add(bookingxyz);

上記のコードをループしています。日付と時間帯に基づいて重複した予約を避けたいのですが、どうすればよいですか?

4

3 に答える 3

5

回避しようとしているリストに重複がありますか? はいの場合、重複を許可するため、リストを使用しないでください。

より適した候補はHashsetです。ここで説明されているようにGetHashCode()Bookingにオーバーライドを追加し、日付タイムスロットに基づいてハッシュを計算する必要があります

次に、 BookingHashSetに追加する直前に、 Containsメソッドを使用してオブジェクトがまだ存在しないことを確認します。

于 2013-08-10T02:08:24.630 に答える
0

重複キーが許可されないため、辞書に変更する必要があると思います。これにより、追加時に例外をスローしない予約オブジェクトをキーに追加できます。

于 2013-08-10T02:56:45.313 に答える
0

リストに重複する値を追加したくない場合は、まずリストを使用しないでください。または、ある種の Id をクラスに追加して、辞書のキーとして使用するか、Simon の提案に従ってHashSetを使用することもできます。

ただし、重複を見つけたい場合は、次のような linq クエリを使用できます。

bookedlist.Select( x=> new {x.date, x.timeslot}).Distinct();
于 2013-08-10T02:15:59.417 に答える