Estoy tratando de hacer un método de extensión que mezcle los contenidos de una colección de listas genéricas independientemente de su tipo, pero no estoy seguro de qué poner entre < .. > como el parámetro. ¿Pongo un objeto? o Tipo? Me gustaría poder usar esto en cualquier colección de Lista que tenga.Cómo especificar el parámetro para el método de extensión de tipo de lista genérico en C#
Gracias!
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);
}
}
Tengo que aprender a escribir más rápido. De todos modos, 'IList' sería más general. –
cuando pruebo todos los métodos listados, me sale ... Argumento '2': no se puede convertir de 'objeto' a 'T' – Grant
@Grant: Necesita cambiar la parte en el medio para usar "T" en lugar de "objeto "(o agrega un molde). Como mencionó John, usar IList sería más general, aunque no todos los IList implementan la inserción, por lo que es posible que no funcione en general. –