Vielleicht möchten Sie Folgendes ausprobieren:
%Vor%von MSDN: Ссылка
Bestimmt, ob ein Element einer Sequenz eine Bedingung erfüllt.
Das x => x.someProperty == someValue
wird lambda expression
genannt, falls Sie es nicht wussten.
Beachten Sie, dass Sie dies für alles verwenden können, das IEnumerable
implementiert, damit Sie nicht auf List<T>
beschränkt sind.
Es sollte IEquatable<AnyOtherClass>
nicht <string>
sein. Sie vergleichen Instanzen von AnyOtherClass
nicht Instanzen von String
, obwohl Ihr Vergleich Strings innerhalb Ihrer Klasse tatsächlich vergleicht.
Aber es sieht eher so aus, als ob Sie versuchen, eine Art Wörterbuch zu erstellen. In diesem Fall sollten Sie die Wörterbuchklassen verwenden.
Dies ist nicht die beabsichtigte Verwendung von IEquatable & lt; T & gt ;. Sehen Sie sich die Dokumentation Ссылка an:
Hinweise zu Implementierern Ersetzen Sie den Typparameter des IEquatable & lt; T & gt; Schnittstelle mit dem Typ, der diese Schnittstelle implementiert.
Abgesehen davon, dass Sie nicht so funktionieren sollten, warum sollten Sie eine Implementierung von equals in einer Klasse erzwingen, weil eine andere Klasse eine spezielle Anforderung zum Nachschlagen von Instanzen hat? Überlassen Sie es der Klasse mit der Sammlung, die schlüsselbasierte Suche wie in anderen Antworten beschrieben durchzuführen.
Tags und Links c# generics contains iequatable