này phụ thuộc vào nếu bạn muốn sắp xếp danh sách, hoặc lấy các giá trị theo thứ tự được sắp xếp (không thay đổi danh sách).
Để sắp xếp danh sách riêng của mình (giả bạn có một List<element>
gọi elements
):
elements.Sort((x, y) => x.priority.CompareTo(y.priority));
// now elements is sorted
.NET 2.0 tương đương:
elements.Sort(
delegate(element x, element y) {
return x.priority.CompareTo(y.priority);
}
);
Để có được các giá trị trong thứ tự sắp xếp:
var orderedElements = elements.OrderBy(x => x.priority);
// elements remains the same, but orderedElements will retrieve them in order
Không có LINQ tương đương trong .NET 2.0, nhưng bạn có thể viết của riêng mình:
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;
}
Cách sử dụng:
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);
Nguồn
2010-03-24 17:37:47
Những ngôn ngữ lập trình? –
C#? Java? Lang gì? –
có thể là C#, vì cú pháp <> generic/template, C++ không có bất cứ thứ gì được xây dựng trong tên chính xác 'List', và Java sẽ thích ArrayList hơn. –