3

List<Dictionary<String,object>>文字列のみを含むオブジェクトの注文方法

辞書は次のように構成されています

[name: mario]
[surname: rossi]
[address: xxxxxx]
[age: 40]

これらの辞書のリストを「年齢」順に並べたいのですが、助けてもらえますか?

私は試してみました:

myList.Select(x => x.OrderBy(y=>y.Value)) 

それは私にこのエラーを与えます:値は文字列ではありません(彼に同意します、それはオブジェクトです、私は何らかの方法でキャストする必要があります)が、より重要なのは、「orderby」メソッドにそれを伝えることができないということです年齢順に並べる必要があります

4

2 に答える 2

6

あなたはの線に沿って何かをしたいです

var sorted = myList.OrderBy(dict => Convert.ToInt32(dict["age"]));

Convert.ToInt32年齢に別のデータ型を使用している可能性がわずかにあり、間違った型にキャスト (ボックス化解除) すると例外がスローされるため、防御的に使用しました。

于 2012-11-13T10:08:59.693 に答える
5
myList.Sort((x,y) => ((int)x["age"]).CompareTo((int)y["age"]));

または類似:

myList.Sort((x, y) => Comparer.Default.Compare(x["age"], y["age"]));

でも!辞書の代わりに適切な型を使用すると、はるかに簡単になります。それは次のようになります。

myList.Sort((x,y) => x.Age.CompareTo(y.Age));
于 2012-11-13T10:08:51.067 に答える