mar*_*are 2 c# list icollection iequatable
为什么有List<T>.Contains(T)方法但没有List<T>.Find(T)方法?仅Find支持支持谓词的s.如果我们与它的ID属性值填充T的现有实例(但缺少其他属性),为什么我们不能在提供该对象实例的搜索搜索List,特别是当我们已经实现了定制IEquatable<T>的T,并想用什么东西在那里.但实际上,我们不能,我们必须重复我们IEquatable在Find(predicate)调用中实现的所有内容.
Joe*_*ant 10
你可以打电话给你的IEquatable<T>会员Predicate<T>.那你就不会重复自己了.
MyClass a = new MyClass(); //sample for finding; IEquatable<MyClass>
List<MyClass> list = GetInstances();
MyClass found = list.Find( mc => mc.Equals(a) );
Run Code Online (Sandbox Code Playgroud)