有没有一种方法可以在对象内部的C#列表中存储对象的位置?

时间:2020-08-13 06:46:15

标签: c# list arraylist indexing

应该注意的是,列表中每个对象的字段之间可能无法区分,最好的区分方法是通过ID。如果对象的ID也可以作为该列表中的索引,那将非常有帮助。

    //...

    receiveData(ClassA obj2Add) {
       maplist.Insert(0, obj2Add);       //Defined as a Maplist, which extends List<ClassA>, assume with no other fields of relevance
       Console.WriteLine(obj2Add.Index); //Should display zero.
    }
    
    class ClassA {
       string mapname {get;set;}
       int Index;               //Would reference this ClassA's position in maplist.
    }

有什么可以添加到ClassA或Maplist类中以实现此目标的东西吗?

1 个答案:

答案 0 :(得分:0)

仅当您的ClassA ID从0开始时,然后您才能执行以下操作:

 receiveData(ClassA obj2Add) {
       maplist.Insert(0, obj2Add);
       maplist=maplist.OrderBy(o=> o.Index).ToList();
       Console.WriteLine(obj2Add.Index);
    }

您为什么仍然需要它?我猜想您想通过maplist[id]

选择元素

如果是这种情况,那么我建议使用

maplis.FirstOrDefault(f=>f.Index==id);