Türüne bakılmaksızın genel liste koleksiyonunun içeriğini karıştıracak bir uzantı yöntemi oluşturmaya çalışıyorum ancak < arasında ne konacağından emin değilim. > parametre olarak. nesne koyarım veya yazın? Bunu sahip olduğum herhangi bir Liste koleksiyonunda kullanmak istiyorum.Genel liste türü uzantısı yöntemi için parametre belirtme C#
Teşekkürler!
public static void Shuffle<T>(this List<T> source)
{
Random rnd = new Random();
for (int i = 0; i < source.Count; i++)
{
int index = rnd.Next(0, source.Count);
T o = source[0];
source.RemoveAt(0);
source.Insert(index, o);
}
}
herhangi List<T>
ile çalışmak için izin verir:
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);
}
}
Daha hızlı yazmayı öğrenmem gerekiyor. Neyse, "IList" daha genel olurdu. –
listelenen tüm yöntemleri denediğimde ... Argüman '2': 'object' dan 'T' ye dönüşemiyor – Grant
@Grant: Ortadaki kısmı "object" yerine "T" kullanmak için değiştirmeniz gerekiyor "(ya da bir döküm ekleyin). John'un da belirttiği gibi, IList'u kullanmak, genel olarak IList uygulama eki olmasa da daha genel olurdu, bu yüzden genellikle işe yaramayabilir. –