根据类元素组织字典

时间:2014-07-04 02:37:12

标签: c# class dictionary

我有一个程序,我将对象添加到字典中。字典设置为int和我的自定义' Ship'类。问题是我需要通过类中的变量来组织船只。

船级是 -

public class Ship
{
    public string Name { get; set; }
    public int Attack { get; set; }
    public int Engine { get; set; }
    public int Shield { get; set; }
    public string Team { get; set; }
    public string ShipClass { get; set; }

    public Ship(string name, int attack, int engine, int shield, string team, string shipClass)
    {
        Name = name;
        Attack = attack;
        Engine = engine;
        Shield = shield;
        Team = team;
        ShipClass = shipClass;
    }
}

我需要组织

Dictionary<int,Ship> ShipList = new Dictionary<int,Ship>();

通过ShipList [i]。发动机,我穿过我的每艘船。 任何帮助都会很棒。

4 个答案:

答案 0 :(得分:0)

Dictionary是无序的,因此尝试对字典进行排序并将其保存在字典中没有任何意义。这将为您提供List键/值(int / Ship)对,按Engine排序:

var orderedPairs = ShipList.OrderBy(x => x.Value.Engine).ToList();

答案 1 :(得分:0)

这将为您提供有序的收藏。请注意,如果您不需要对所有船只进行分类,则应该使用where子句对其进行限制,以减少对所有船舶进行分类的开销。

ShipList.Values.OrderBy(s => s.Attack);

答案 2 :(得分:0)

如果要确保订购实际字典,则需要使用SortedDictionary类,并提供自己的IComparer。标准词典不支持按键排序。

答案 3 :(得分:0)