简体   繁体   English

根据对象成员对C#数组进行排序?

[英]Sort a C# Array based on an object member?

I have a constructor with 2 (double) arrays members : 我有一个2(双)数组成员的构造函数:

constructor[i].x and constructor[i].y ( where i is the number of elements ) 构造函数[i] .x和构造函数[i] .y(其中,i是元素数)

How can I sort the x member : constructor[].x ? 如何对x成员进行排序:constructor []。x?

With LINQ it is just 有了LINQ,

constructor = constructor.OrderBy(a => a.x).ToArray();

Without LINQ 没有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;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM