排序泛型列表或类/结构的阵列基于类属性或元素属性
创建一个类来保存成本及其索引然后进行排序的数组或列表这个类
你可以添加事件闪避,ATT,成本,每个项目名称属性类
我这里是
public class CostData
{
public int Cost;
public int ID;
public CostData(int CostAmount, int CostID)
{
Cost = CostAmount;
ID = CostID;
}
}
private void button1_Click(object sender, EventArgs e)
{
List<CostData> itemcost = new List<CostData> {
new CostData(100, 1),
new CostData(300, 2),
new CostData(900, 3),
new CostData(300, 4),
new CostData(100, 5),
new CostData(300, 6)
};
List<CostData> SortedList = itemcost.OrderByDescending((CostData i) => i.Cost).ToList();
Console.WriteLine(SortedList[0].Cost.ToString() + " on index " + SortedList[0].ID.ToString());
// you can do same with Arrray
CostData[] itemcost2 = new CostData[] {
new CostData(100, 1),
new CostData(300, 2),
new CostData(900, 3),
new CostData(300, 4),
new CostData(100, 5),
new CostData(300, 6)
};
CostData[] SortedList2 = itemcost2.OrderByDescending((CostData i) => i.Cost).ToArray();
Console.WriteLine(SortedList2[0].Cost.ToString() + " on index " + SortedList2[0].ID.ToString());
}
不要使用单独的值的阵列,使用的是包含用于所有相关的值属性的类的阵列(或列表)。 – CodeCaster
当然,这将是理想的,但问题是,虽然这很容易让我在PHP中做,在C#这是很难做! – Adam
说我有每个项目def,att,cost,name属性什么是最好的存储方式,通过att(降序)排序然后得到列表中的第二项? – Adam