Próbuję utworzyć metodę rozszerzenia, która przetasuje zawartość ogólnej kolekcji list, niezależnie od jej typu, ale nie jestem pewien, co umieścić między < .. > jako parametr. czy umieszczam obiekt? lub Typ? Chciałbym móc użyć tego w dowolnej kolekcji List, którą mam.Jak określić parametr dla ogólnej metody rozszerzania listy C#
Dzięki!
public static void Shuffle(this List<???????> source)
{
Random rnd = new Random();
for (int i = 0; i < source.Count; i++)
{
int index = rnd.Next(0, source.Count);
object o = source[0];
source.RemoveAt(0);
source.Insert(index, o);
}
}
Muszę nauczyć się pisać szybciej. W każdym razie "IList" byłby bardziej ogólny. –
kiedy wypróbuję wszystkie wymienione metody, otrzymam ... Argument "2": nie można przekonwertować z "obiektu" na "T" – Grant
@Grant: Musisz zmienić fragment w środku, aby użyć "T" zamiast "obiektu" "(lub dodaj obsadę). Jak wspomniał John, użycie IList byłoby bardziej ogólne, chociaż nie wszystkie implementacje IList , więc może nie działać ogólnie. –