2017-07-18 3 views
-1

を昇順に番号の文字列を注文私は現在、このようになります文字列を持っている:

string numbers = "55;9;20;3"; 

がどのように私はこのような昇順の番号になるだろう:

string numbers = "3;9;20;55"; 
+0

クール:

は、例えば、ここでは、コードの1つのラインの同じ論理です。どうしたの? – Jasen

+0

あなたがどのようにそれをやろうとしたか、どのような問題が発生したかを示す、[example](https://stackoverflow.com/help/mcve) – Hatik

答えて

3

あなたが試すことができますが以下のようなString.Join、[並べ替えとint.Parseの組み合わせで:

numbers= String.Join(";", 
     numbers.Split(';').OrderBy(x=> int.Parse(x))); 

あなたはこのを確認することができますは、同様に

+1

パーフェクト、ありがとう! – Ghost

+0

@Ghost:それが本当に助けられたら、それを受け入れたものとしてマークすることができます –

0

あなたはこのためにSystem.Linq名前空間を使用することができます。

using System.Linq; 

... 

    string numbers = "55;9;20;3"; 
    string output = String.Join(",", numbers.Split(';').Select(x => int.Parse(x)).OrderBy(x => x)); 
0

私は4段階のプロセスにこれを破ると思います。

// 1) Split the numbers apart using based on the delimiting character ';' 
var splitString = numbers.Split(';'); 

// 2) Convert the array of `string` to an array of `int` 
var numberArray = splitString.Select(x => int.Parse(x)); 

// 3) Order the array which has been output by the `Split` method. 
var orderedArray = numberArray.OrderBy(x => x); 

// 4) Join the string back together again in the correct order, delimited by ';' 
var orderedNumbers = string.Join(";", orderedArray); 

これは、コードの以下の行に一緒に押しつぶさできるが、複数の段階でそれをすることによって、それはあなたに何が起こっているかをよく理解を与える必要があります。

string orderedNumers = string.Join(";", numbers.Split(';').OrderBy(x => int.Parse(x)));