class IList2
{
static void Main(string[] args)
{
Locations test = new Locations();
Location loc = new Location();
string sSite = "test";
test.Add(sSite);
string site = loc.Site;
Location finding = test.Where(i => i.Site == site).FirstOrDefault();
int index = finding == null ? -1 : test.IndexOf(finding);
}
}
public class Location
{
public Location()
{
}
private string _site = string.Empty;
public string Site
{
get { return _site; }
set { _site = value; }
}
}
public class Locations : IList<Location>
{
List<Location> _locs = new List<Location>();
public Locations() { }
public int IndexOf(Location item)
{
return _locs.IndexOf(item);
}
//then the rest of the interface members implemented here in IList
public void Add(string sSite)
{
Location loc = new Location();
loc.Site = sSite;
_locs.Add(loc);
}
}
IEnumerator<Location> IEnumerable<Location>.GetEnumerator()
{
return _locs.GetEnumerator();
}
Мне немного помогли в этом посте: Попытка вызова метода int IList .IndexOf (Location item)
Я пытался заставить это работать, но явсегда, кажется, получить -1 в качестве номера индекса.Я знаю, что строка site = loc.Site;
пуста после осознания этого, поэтому я не знаю точно, как получить индекс из IList на данный момент.
Чтобы выяснить, чего я пытаюсь достичь, я хочуУзнайте, как использовать члены интерфейса IList, и я начал с интерфейса IndexOf.
IList содержит больше, чем просто "sSite", но я просто сокращаю список до "sSite" для примера.
Так что в середине обучения я натолкнулся на этот ударв дороге и несколько дней пялился на код (да, я делаю перерывы и смотрю на другие вещи, чтобы не утомляться).
Итак, главная проблема в том, что я продолжаю получать индекс = -1.