0

Webサービス呼び出しから以下のようにArrayListを送信しています:

private ArrayList testList = new ArrayList();

次のような値を格納します:

"xyz (pound) (4545)"
"abc (in)    (346)"
"def (off)   (42424)"

私は2つの理由でこれを使用します:

1:ASP.NET1.1フレームワークでこの値をフェッチする必要があります。

2:testList.Sort();を使用します。送信する前に。

しかし今、私はこれらの値を次のように送信したいと思います:

"xyz"   "pound"  "4545"
"abc"  "in"    "346"
"def"   "off" "42424"

だから私は以下のような方法を見つけました:

string[][] data = { new string[]{"xyz", "pound", "4545"},
                    new string[]{"abc", "in", "346"}, 
                    new string[]{"def", "off", "42424"}};

質問は:どうすれば効果的に並べ替えることができますか?またはこれに対処するためのより良い方法はありますか?

並べ替えは最初の要素に基づいて行われます:

abc
def
xyz
4

3 に答える 3

5

ASP 1.1でこの値を読み取る必要があると書いているので、送信側で利用可能な.NETFrameworkのより新しいバージョンがあると思います。

その場合は、Framework3.5以降に含まれているLINQのOrderByメソッドを使用できます。

string[][] data = { new string[] { "xyz", "pound", "4545" }, 
                    new string[] { "abc", "in", "346" }, 
                    new string[] { "def", "off", "42424" } };
data = data.OrderBy(entry => entry[0]).ToArray();  // sorts by first field
于 2012-10-19T13:15:54.653 に答える
2

配列の最初の項目で内部配列を並べ替えるだけです

string[][] sorted = data.OrderBy(array => array[0]).ToArray();
于 2012-10-19T13:15:09.470 に答える
0

受け入れられた答えは、文字列の最初の文字を比較しようとしている場合にのみ正しいです。同様の問題がありました。正確な並べ替えを行うには、最初の文字だけでなく文字列全体で並べ替える必要があります。

data = data.OrderBy(entry => entry).ToArray(); // sorts by first field

于 2018-10-31T14:52:36.970 に答える