Das Element kann in einer der Listen enthalten sein. Aber jedes Item nur einmal. Es sollte nicht das gleiche (oder ähnliche) Element in einer der anderen Listen sein.Wie finden und entfernen Sie ein anonymes Objekt in einer von 7 SortedLists in einer Liste?
Hier ist meine Klasse.
class Calendar
{
public List<SortedList<string, Item>> list;
public Item()
{
list = new List<SortedList<string, Item>>(); //List of Week
list.Add(new SortedList<string, Item>()); //Monday
list.Add(new SortedList<string, Item>()); //Tuesday
list.Add(new SortedList<string, Item>()); //Wednesday
list.Add(new SortedList<string, Item>()); //Thursday
list.Add(new SortedList<string, Item>()); //Friday
list.Add(new SortedList<string, Item>()); //Saturday
list.Add(new SortedList<string, Item>()); //Sunday
}
}
ein Element zu entfernen, habe ich versucht, so etwas wie dieses:
public void RemoveItem(string key)
{
foreach (SortedList<string, Item> item in list)
{
if (item.Keys.Contains(key))
{
item.Remove(key);
}
}
}
aber anscheinend nicht funktioniert.
Hier ist, wie ich die Elemente hinzufügen. Aber das sollte klar sein:
public void AddItem(string Day, Item i)
{
string s = i.Title
switch (Tag)
{
case "Monday":
list[0].Add(s, i);
break;
case "Tuesday":
list[1].Add(s, i);
break;
case "Wednesday":
list[2].Add(s, i);
break;
case "Thursday":
list[3].Add(s, i);
break;
case "Friday":
list[4].Add(s, i);
break;
case "Saturday":
list[5].Add(s, i);
break;
case "Sunday":
list[6].Add(s, i);
break;
default:
list[0].Add(s, i);
break;
}
}
Zuerst habe ich List<List<Item>>
aber ich herausgefunden, dass ein SortedList einfacher ist für meine Zwecke zu behandeln.
Haben Sie versucht, stattdessen eine For-Schleife? –
ja. hat auch nicht funktioniert. –
Ich sehe nicht, dass Sie die zweite Liste auflisten, 'foreach (var Liste in Listen) {list.RemoveWhere (x => x.key == Schlüssel);}' als ein Beispiel ... –