Я пытаюсь использовать 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