Questo avviene perchè nelle list
public class StringField<E> : IComparer<E>Che cosa potevo inventarmi se non un Generco Comparer ?? null'altro. Ahi me avrei voluto provare a creare qualcosa di molto più efficace ma questo probabilmente avrebbe rallentato
{
private string FieldName = "";
private SortDirection SortDir = new SortDirection();
public int Compare(E x, E y)
{
int returnValue = 1;
if ((x != null) && (y != null))
{
Type _e = typeof(E);
PropertyInfo _p = _e.GetProperty(FieldName);
string sXvalue = (string)_p.GetValue(x,null);
string sYvalue = (string)_p.GetValue(y, null);
if (SortDir == SortDirection.Ascending)
{
returnValue = sXvalue.CompareTo(sYvalue);
}
else
{
returnValue = sYvalue.CompareTo(sXvalue);
}
}
return returnValue;
}
public StringField(string fName, SortDirection sDirection )
{
FieldName = fName;
SortDir = sDirection;
}
}
il mio processo, nel senso che avrei potuto implicitamente richiedere come parametro il tipo
su cui eseguire il confronto, e quindi tipizzarmi il campo su cui eseguire i confronti.
Bhe ho preferito questa via, in modo da dover implementare dei comparatori specifici
per interi stringhe e date...
Nessun commento:
Posta un commento