根据字典值按顺序输出排序列表

时间:2014-02-22 15:48:12

标签: c# sorting dictionary

我正在尝试根据我的词典值以升序输出我的排序字典字典。这些价值观正在蒸发并不断变化。但是我没有得到理想的输出。

现在我有这个:

foreach(KeyValuePair<string, float> p in estimote_data.estimoteDictionary)
{
    Debug.Log("Key Valeu: " + p.Key + " Value value: " +  p.Value);         
}

这是放在我的更新方法中并输出以下内容:

  

Key Valeu:6491 Value value:2.782559

     

几行Unity Xcode调试内容

     

Key Valeu:18087价值:0.278256

我正在尝试获取它,所以我可以看到值根据Value值自动排序,但我很难完成这项工作。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

SortedDictionary按键排序。如果您想按某种顺序对项目列表进行排序,则需要告诉程序:

foreach(KeyValuePair<string, float> p in estimote_data.estimoteDictionary.OrderBy(p=>p.Value))
{
    Debug.Log("Key Valeu: " + p.Key + " Value value: " +  p.Value);         
}

这种排序将以O(n log n)的顺序昂贵。如果您只使用Dictionary进行排序,则只需切换Key和Value,如下所示:

foreach(KeyValuePair<float, string> p in estimote_data.estimoteDictionary)
{
    Debug.Log("Key Valeu: " + p.Value+ " Value value: " +  p.Key);         
}