ここにいくつかのコード例を示します。LINQを使用するためにどのようなメソッドをオーバーライドする必要がありますか?
私は自分のクラスを作成しました:
public class MyObject {
private string _guid;
public int Value;
// other stuff here...
public MyObject() {
_guid = Guid.NewGuid().ToString();
}
}
を、私は例えば、私は前に作成され、いくつかのオブジェクトと他のオブジェクトのリストを持っている:
MyObject inputObject = new MyObject();
List<MyObject> myObjects = new List<MyObject>();
は、私は次のようにそれらを使用します:
myObjects.Where(mo => mo == inputObject).Sum(fo => fo.Value);
など。 (私は私のリストにはInputObjectと同じGUIDを持つオブジェクトがあることを確信している、これはただのコード例である)
質問は次のとおりです。私はLINQは、検索を使用するにはどうすればよい
、どこに、このリストの合計など?
GUIDで比較するためにどのようなメソッドをオーバーライドする必要がありますか、どのように表示する必要がありますか?
Equals()メソッドでIEquatableを使用する方が良いですか?
を=='オーバーライドする必要性をyou'd '==' -operatorを使うと、 'Equals'に対してチェックすると、そのメソッドをオーバーライドする必要があります。 'Sum'の場合、あなたはすでにデリゲートに集計される値を置くので、オーバーライドする必要はありません。 – HimBromBeere
@HimBromBeereそれでは、どのように正しく上書きする必要がありますか?私はIEquatableをMyObjectに使用する必要がありますか? –
where節がどのように見え、どこのメソッドで呼び出すかによって異なります。これはオーバーライドする方法でなければなりません(そして、このメソッドはMarcが指摘しているものに依存しているかもしれません)。 – HimBromBeere