C # sorting a list <> using Tuple?

I need to sort List <> of MediaItem objects by publication date ... publication date is not a property of the element. Therefore, my initial intention was to temporarily apply the date publishing property, load it, sort and cut the property. Someone at my work suggested using Tuple and sorting with LINQ ... I got this far in my tear-off test by filling out List <> ... but I'm not sure how to sort by this date property using LINQ. I will continue to look at my end, but if anyone gets any help, I will be grateful. Thank.

List<Tuple<MediaItem, DateTime>> list = new List<Tuple<MediaItem, DateTime>>();

            for (int i = 0; i <= 10; i++)
            {
                DateTime date = new DateTime(2011, i, 1);
                MediaItem item = new MediaItem();
                list.Add(new Tuple<MediaItem, DateTime>(item, date));
            }
+5
3

OrderBy( ) LINQ ; , . - , Item2.

var result = list.OrderBy( x => x.Item2 ).ToList();

LINQ, OrderByDescending() `OrderBy().

, , , OrderBy() . ​​ .

( ), Comparison<T> Sort().

 list.Sort( (a,b) => a.Item2.CompareTo(b.Item2) );

- , SortedList... IComparer<Tuple<MediaItem, DateTime>>. , , .

+13

List<T>.Sort, - Comparison<T>.

// Sorts tuples in chronological order. To use reverse chronological order,
// use t2.Item2.CompareTo(t1.Item2) instead.
list.Sort((t1, t2) => t1.Item2.CompareTo(t2.Item2));

, , , , .

+5
List<Tuple<MediaItem, DateTime>> list = new List<Tuple<MediaItem, DateTime>>();

 for (int i = 0; i <= 10; i++)
 {
      DateTime date = new DateTime(2011, i, 1);
      MediaItem item = new MediaItem();
      list.Add(new Tuple<MediaItem, DateTime>(item, date));
 }

list.Sort((a, b) => a.Item2.CompareTo(b.Item2));

foreach (var element in list)
{
    Console.WriteLine(element);
}
+2
source

All Articles