是否可以在列表中获取项目的当前索引位置

本文关键字:索引 位置 项目 获取 列表 是否 | 更新日期: 2023-09-27 18:33:41

是否可以获取项目在列表中的位置以执行以下操作?...

public class ListItem
{
    public override string ToString()
    { return PositionInList.ToString(); }
}
public List < ListItem > myList = new List < ListItem >();

是否可以在列表中获取项目的当前索引位置

我并不是说你应该这样做,因为一个类知道它的容器很奇怪,但你可以这样做:

List<ListItem> parentList;
public ListItem(List<ListItem> parentList)
{
    this.parentList = parentList;
}
public override string ToString()
    { return parentList.IndexOf(this).ToString(); }

当然,在构造过程中,您需要传入父集合。

ListItemList 之间应该有联系。例如,您可以添加一个属性来存储具有以下ListItem的列表:

public List<ListItem> List { get; set; }
public List <ListItem> myList = new List <ListItem>();
myList.Add(new ListItem { List = myList });

然后您可以使用IndexOf方法:

public override string ToString()
{ 
    return List.IndexOf(this).ToString(); 
}

使用 List 类的 .IndexOf() 方法将允许您执行此操作。

var lst = new List<string>();
lst.Add("foo");
lst.Add("bar");
// Output the index, ie: 1
Console.WriteLine(lst.IndexOf("bar"));