1

cでこのようなことをする必要があります#私はjavaで行います:

Double[][] matrix = new Double[3][4];

        matrix[0][0] = 100.0;
        matrix[0][1] = -3.0;
        matrix[0][2] = 50.0;
        matrix[0][3] = 50.3;

        matrix[1][0] = 1.2;
        matrix[1][1] = 1.1;
        matrix[1][2] = 0.9;
        matrix[1][3] = 10000.0;

        matrix[2][0] = 2.3;
        matrix[2][1] = 2.35;
        matrix[2][2] = 2.32;
        matrix[2][3] = 2.299;

        Arrays.sort(matrix, new Lexical());

私はMSDNのドキュメントを見てきましたが、リストを並べ替える以外に方法はありませんList<List<T>>

ありがとう

4

3 に答える 3

2

ホルヘ。

考えられる解決策の1つ:

matrix.Sort(delegate(List<double> l1, List<double> l2)
            {
               return l1[0].CompareTo(l2[0]);
            });

さよなら。

于 2013-02-27T12:34:40.957 に答える
0

独自のIComparerを実装して並べ替えたり、Linqを使用して何かを実行したりできます。これにより、基本的に行列全体を調べて並べ替えたり、List>などの別のデータ構造にまとめて並べ替えたりできます。簡単に並べ替えることができます。 。

またはこのようなもの:

C#で2次元配列を並べ替えるにはどうすればよいですか?

http://www.codeproject.com/Tips/166236/Sorting-a-two-dimension-array-in-C

于 2013-02-27T12:08:34.813 に答える
0

各配列の最初の要素で並べ替えることができます(それがあなたが求めているものである場合):

var matrix = new double[][] {
    new[] { 100.0, -3.0, 50.0, 50.3 },
    new[] { 1.2, 1.1, 0.9, 10000.0 },
    new[] { 2.3, 2.35, 2.32, 2.299}
};

Array.Sort(matrix, (a, b) => a[0].CompareTo(b[0]));
于 2013-02-27T12:36:04.267 に答える