Ahoj, mam dotaz jestli je možné hledat v poli struktur pomocí implementace interface jako je např. IEquatable jen přes datový typ proměnné, která je ve struktuře? Nebo je možné hledat přes stejnou strukturu? Snad to chci půjde lépe poznat z kódu.
public struct Money : IEquatable<Money>
{
public string Value { get; private set; }
public int ID { get; private set; }
public Money(string value,int ID) : this()
{
Value = value;
}
public bool Equals(Money other)
{
bool result = this.Value.Equals(other.Value);
return result;
}
public bool Equals(string other)
{
bool result = this.Value.Equals(other);
return result;
}
public override bool Equals(Object obj)
{
if (obj is Money)
return Equals((Money)obj);
else
return false;
}
}
A použití
var amounts = new List<Money> { new Money("aaa", 10), new Money("bbb", 11), new Money("ccc", 22) };
string xxx = "aaa";
Money ttt = new Money();
ttt.Value = "bbb";
int index1 = amounts.IndexOf(ttt);
int index2 = amounts.IndexOf(xxx);
První vyhledání (index1 ) přes strukturu funguje, ale druhé (index2) jen za pomocí parametru string ne...