是否可以在列表中获取项目的位置以执行以下操作?...
public class ListItem
{
public override string ToString()
{ return PositionInList.ToString(); }
}
public List < ListItem > myList = new List < ListItem >();
答案 0 :(得分:1)
ListItem
和List
之间应该有联系。例如,您可以添加一个属性来存储具有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();
}
答案 1 :(得分:1)
我不是说你应该这样做,因为知道它的容器的类只是奇怪的,但是你可以这样做:
List<ListItem> parentList;
public ListItem(List<ListItem> parentList)
{
this.parentList = parentList;
}
public override string ToString()
{ return parentList.IndexOf(this).ToString(); }
当然,在构建过程中,您需要传递父集合。
答案 2 :(得分:-1)
使用List类的.IndexOf()
方法将允许您这样做。
var lst = new List<string>();
lst.Add("foo");
lst.Add("bar");
// Output the index, ie: 1
Console.WriteLine(lst.IndexOf("bar"));