Я пытаюсь использовать List<T> с моим собственным классом и иметь возможность использовать в списке такие методы, как Contains(), Find() и т.д. Я думал, что мне просто нужно перегрузить оператор ==, но, видимо, один из способов сделать это - использовать метод делегата с Find()...
Примечание. В настоящий момент я перегрузил метод Equals(), чтобы получить метод Contains(), но я все еще не мог заставить функцию Find() работать.
Каким будет лучший способ заставить обоих работать?
Я использую последнюю версию фреймворка С#/.NET с моно, на linux.
edit: Здесь мой код
using System;
namespace GuerreDesClans
{
public class Reponse : IEquatable<Reponse>
{
public Reponse ()
{
m_statement = string.Empty;
m_pointage = 0;
}
public Reponse (string statement, int pointage)
{
m_pointage = pointage;
m_statement = statement;
}
/*
* attributs privés
*/
private string m_statement;
private int m_pointage;
/*
* properties
*/
public string Statement {
get { return m_statement; }
set { m_statement = value; }
}
public int Pointage {
get { return m_pointage; }
set { m_pointage = value; }
}
/*
* Equatable
*/
public bool Equals (Reponse other)
{
if (this.m_statement == other.m_statement)
return true;
else
return false;
}
}
}
и как я хотел бы искать объекты Ответа с помощью функции find()...
list.find("statement1"); // would return a Reponse object