J'ai un constructeur avec 2 tableaux (double) membres:Trier un tableau C# basé sur un membre d'objet?
constructeur[i] .x et constructeur [i] .y (où i est le nombre d'éléments)
Comment puis-je trier les x membre: constructeur []. x?
J'ai un constructeur avec 2 tableaux (double) membres:Trier un tableau C# basé sur un membre d'objet?
constructeur[i] .x et constructeur [i] .y (où i est le nombre d'éléments)
Comment puis-je trier les x membre: constructeur []. x?
Avec LINQ, il est juste
constructor = constructor.OrderBy(a => a.x).ToArray();
Sans LINQ
class CustomClass
{
public double x;
public double y;
}
public class CustomComparer : IComparer<CustomClass>
{
private CustomComparer() { }
public static CustomComparer Instance { get { return _SingeltonInstance; } }
private static CustomComparer _SingeltonInstance = new CustomComparer();
public int Compare(CustomClass a, CustomClass b)
{
return a.x.CompareTo(b.x);
}
}
public class myCode
{
public void SomeFuction(CustomClass[] myClass)
{
//myClass is unsorted here;
Array.Sort(myClass, CustomComparer.Instance);
//myClass is sorted here;
}
}
Ce n'est pas LINQ. LINQ (IEnumerable) utilise OrderBy. Il existe cependant ['static Array.Sort'] (http://msdn.microsoft.com/en-us/library/system.array.sort.aspx) et [' List.Sort'] (http://msdn.microsoft.com/en-us/library/3da4abas.aspx). –
@pst cela a été tapé à partir de la mémoire de mon téléphone. Corrigée. –
Juste vous garder sur vos orteils ;-) –
S'il vous plaît coller le code réel (y compris toute tentative * * * ainsi que la raison * pourquoi ils ne fonctionnent pas). Il n'y a pas de "Constructeur" ici, sauf pour le nom. –
Voir http://stackoverflow.com/questions/1301822/how-to-sort-an-array-of-object-by-a-specific-field-in-c Ce n'est pas un tri Array en place, mais il travaillera dans la plupart des cas. Ou consultez la documentation [Array.Sort] (http://msdn.microsoft.com/en-us/library/system.array.sort.aspx). –
(Il serait intéressant de voir les réponses qui montrent l'utilisation de Array.Sort, peut-être en plus des approches LINQ Toutes les réponses que j'ai pu trouver sur SO dans ma brève recherche concernaient LINQ/IEnumerable et * not * spécifiquement un tableau. L'avantage, et la béquille, de Array.Sort est qu'il est en train de muter.) –