Sort()
'un çalışmasını istiyorsanız, sınıfa IComparable
veya IComparable<T>
kodunu uygulamanız gerekir.
bir yeni listesi oluşturmayı sakıncası yoksa, OrderBy
/ToList
LINQ uzantısı yöntemleri kullanabilirsiniz. Eğer daha basit sözdizimi ile mevcut listeyi sıralamak isterseniz, sağlayan birkaç uzatma yöntemleri ekleyebilirsiniz: Örneğin
list.Sort(item => item.Name);
:
public static void Sort<TSource, TValue>(
this List<TSource> source,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
source.Sort((x, y) => comparer.Compare(selector(x), selector(y)));
}
public static void SortDescending<TSource, TValue>(
this List<TSource> source,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
source.Sort((x, y) => comparer.Compare(selector(y), selector(x)));
}
a.Name ise patlatmak hangi null ... –
Sadece güvenli olacak string.Compare (a.Name, b.Name) kullanabilirsiniz? –
Teşekkürler! Her gün yeni bir şeyler öğrenin ... Cevabı ben düzenleyeceğim. –