Это ты о чем?(С использованием Linq)
var merged = list1.Union(list2).OrderByDescending(d => d.Date);
Обратите внимание, что это возможно только в том случае, если два списка одного типа.Еще обратите внимание, что это возвращает IEnumerable, а не новый List, поэтому каждый раз, когда вы его перечисляете, слияние будет вычислено.Вы должны вызвать ToList () в конце, если вы хотите создать новый список, чтобы предотвратить это, но это может быть очень неоптимальным по производительности, если у вас большие списки.
Пример программы:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Lists
{
class Program
{
static void Main(string[] args)
{
var list1 = new List<DateItem>
{
new DateItem{Date = DateTime.UtcNow.AddDays(-2), Name = "The day before yesterday" },
new DateItem{Date = DateTime.UtcNow.AddDays(1), Name = "Tomorrow" }
};
var list2 = new List<DateItem>
{
new DateItem{Date = DateTime.UtcNow.AddDays(2), Name = "The day after tomorrow" },
new DateItem{Date = DateTime.UtcNow.AddDays(-1), Name = "Yesterday" },
new DateItem{Date = DateTime.UtcNow, Name = "Today" }
};
var merged = list1.Union(list2).OrderByDescending(d => d.Date);
foreach (var day in merged)
{
Console.WriteLine(day.Name);
}
}
}
class DateItem
{
public DateTime Date { get; set; }
public string Name { get; set; }
}
}