2012-04-22 16 views
0

I 2(ダブル)のアレイメンバーとのコンストラクタを有する:オブジェクトメンバに基づいてC#配列をソートしますか?

コンストラクタを[I] .X及びコンストラクタ

(iは要素数である)[I] .YどのようにXソートすることができメンバー:コンストラクタ[]。x?

+3

(*理由*彼らは動作しなかった理由のために一緒に* ANY *の試行を含む)実際のコードを貼り付けてください。名前以外の「コンストラクタ」はありません。 –

+0

http://stackoverflow.com/questions/1301822/how-to-sort-an-array-of-object-by-a-specific-field-in-cこれはインプレースの配列ソートではありませんが、ほとんどの場合、動作します。または、[Array.Sort](http://msdn.microsoft.com/en-us/library/system.array.sort.aspx)のドキュメントを参照してください。 –

+0

(これはおそらくLINQのアプローチに加えて、Array.Sortの使用方法を示す解答を見るのが面白いでしょう。私の簡単な検索で見つけたすべての答えは、LINQ/IEnumerableおよび特に配列ではありませんでした。 Array.Sortのメリットと松葉杖は、それが変異しているということです。) –

答えて

1

は、LINQで、それはちょうど

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

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; 
    } 
} 
+1

これはLINQではありません。 LINQ(IEnumerable)はOrderByを使用します。しかし、[静的Array.Sort'](http://msdn.microsoft.com/en-us/library/system.array.sort.aspx)と['List.Sort'](http: /msdn.microsoft.com/en-us/library/3da4abas.aspx)。 –

+0

@pstこれは私の電話からメモリから入力されました。修正されました。 –

+0

ちょっとあなたのつま先について;-) –

関連する問題