J'ai un liste-générique qui a une propriété (type de classe). J'ai besoin d'une méthode de tri pour les paramètres Z (TrainingSet):Comment faire pour trier le type de liste générique si plus d'une propriété?
public override List<TrainingSet> CalculatedDistancesArray
(List<TrainigSet> ts, double x, double y, int k)
{
for (int i =0; i < ts.Count; i++)
{
ts[i].Z = (Math.Sqrt(Math.Pow((ts[i].X - x), 2)
+ Math.Pow((ts[i].Y - y), 2)));
}
// I want to sort according to Z
ts.Sort(); //Failed to compare two elements in the array.
List<TrainingSet> sortedlist = new List<TrainingSet>();
for (int i = 0; i < k; i++)
{
sortedlist.Add(ts[i]);
}
return ts;
}
public class TrainigSet
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }
public string Risk { get; set; }
}
Notez qu'il y a des manières plus faciles de copier une liste, au fait - et avez-vous vraiment voulu trier la liste * d'entrée * et puis la copiez vers une nouvelle liste? –
Il ne copie pas la liste entière, seulement les premiers k objets. – Guffa