在C#中实现对象列表的排序以及更改对象索引的方法

时间:2019-07-11 09:15:45

标签: c# sorting indexing indices

说我有一个对象Person的列表

{
  public string Name {get; set;}
  public string Gender {get; set;}
}

我想要的是创建一个可以使用名为OrderIndex的属性进行排序的列表。因此,我将此属性添加到Person对象:

{
  public string Name {get; set;}
  public string Gender {get; set;}
  public int OrderIndex {get; set;}
}

此OrderIndex属性的目的是将Person对象放在列表中的特定索引处,以使Person对象的排名更高。

但是,我对此感到非常担忧,因为我必须坚持逻辑的数量。因为说我有3个人物

名称:Dave,性别:男性,OrderIndex:1 姓名:阿曼达(Amanda),性别:女,订单号:2 名称:Trevor,性别:男性,OrderIndex:3

如果我减少Trevor的OrderIndex,我还必须确保将Amandas OrderIndex递增,以使没有两个具有相同OrderIndex的人对象。

我不确定以前是否已经回答过这个问题,但是我没有运气找到要回答该问题的特定线程。

我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果更改OrderIndex,则必须找到下一个免费的整数。因此,如果将Trevors OrderIndex更改为2,则必须在下一个可用的int中搜索Amandas OrderIndex。因此,创建一个完成此操作的方法。

以下是搜索下一个免费int的方法: get next available integer using LINQ