2016-08-26 19 views
1

内のプロパティに基づいて、私は窓のアプリに取り組んでいます私は評価によってそれを解析し、ソートしたい解析JSON文字列とソートのC#

{ 
"0":{"UID":"3182713a-60de-4576-ad82-6804d2acf2b7","Rating":-1}, 
"1":{"UID":"eb41478e-e9bc-428e-8203-482f6a329666","Rating":-13}, 
"2":{"UID":"a0922817-e706-4478-8995-d258bada488d","Rating":6.0033992049}, 
"3":{"UID":"e0716752-56f4-49af-a811-ae55c69baa3d","Rating":-4.9836395671}, 
"4":{"UID":"ec6bf376-17b5-4a9e-92be-990557551cd0","Rating":-7.754526396} 
} 

のようなJSON文字列います。私はそれをどのように実現できるかを提案してください。

+0

は、動的または静的最初のキー(数字)ですか? –

+0

その動的なので、私のcontrol.andではないので、私はそれを変更または変換することはできませんレコードのインデックス。 @JamieR – sagar43

答えて

3

あなたはDictionary<int, YourClass>

例にJSONをdeseraliseする必要があります。

var json = @"{ 
""0"":{""UID"":""3182713a-60de-4576-ad82-6804d2acf2b7"",""Rating"":-1}, 
""1"":{""UID"":""eb41478e-e9bc-428e-8203-482f6a329666"",""Rating"":-13}, 
""2"":{""UID"":""a0922817-e706-4478-8995-d258bada488d"",""Rating"":6.0033992049}, 
""3"":{""UID"":""e0716752-56f4-49af-a811-ae55c69baa3d"",""Rating"":-4.9836395671}, 
""4"":{""UID"":""ec6bf376-17b5-4a9e-92be-990557551cd0"",""Rating"":-7.754526396} 
}"; 


var result = JsonConvert.DeserializeObject<Dictionary<int,MyCustomClass>>(json); 

MyCustomClass Dictionary<int, MyCustomClass>int

public class MyCustomClass 
{ 
    public Guid UID {get;set;} 
    public decimal Rating {get;set;} 
} 

はあなたのJSONで数字キーです。

注:ここではNewtonsoft Jsonを使用しています。

あなたの上に行ってきたら、LINQを使用して、次のようにそれを並べ替えることができます。

var sorted = result.OrderBy(x => x.Value.Rating); 
// OR 
var sorted = result.OrderByDescending(x => x.Value.Rating); 
+0

ありがとうJamieこれはうまく動作しますが、どのように評価に基づいてソートしますか? – sagar43

+0

更新ソートを忘れてしまった! –

+0

ありがとうジェイミー、助けてくれてありがとう。 – sagar43