Bu bağlıdır "Sadece çalışmak" listenin kendisini sıralamak veya değerleri sıralanmış sırayla almak (listeyi değiştirmeden).
listeyi kendisi sıralamak için (bir List<element>
denilen elements
var varsayarak):
elements.Sort((x, y) => x.priority.CompareTo(y.priority));
// now elements is sorted
.NET 2.0 eşdeğeri:
elements.Sort(
delegate(element x, element y) {
return x.priority.CompareTo(y.priority);
}
);
sıralı düzende değerlerini almak için:
var orderedElements = elements.OrderBy(x => x.priority);
// elements remains the same, but orderedElements will retrieve them in order
.NET 2.0'da LINQ eşdeğeri yok, ancak kendiniz yazabilirsiniz:
public static IEnumerable<T> OrderBy<T>(IEnumerable<T> source, Comparison<T> comparison) {
List<T> copy = new List<T>(source);
copy.Sort(comparison);
foreach (T item in copy)
yield return item;
}
Kullanımı:
Comparison<element> compareByPriority = delegate(element x, element y) {
return x.priority.CompareTo(y.priority);
};
// unfortunately .NET 2.0 doesn't support extension methods, so this has to be
// expressed as a regular static method
IEnumerable<element> orderedElements = OrderBy(elements, compareByPriority);
programlama dili? –
C#? Java? Ne lang? –
muhtemelen C#, <> genel/şablon sözdizimi nedeniyle, C++ tam olarak 'List' adlı yerleşik bir öğeye sahip değildir ve Java ArrayList'i tercih eder. –