62,046
社区成员
发帖
与我相关
我的任务
分享
var query = list1.Join(list2, a => a.time, b => b.time, (a, b) => new
{
x = Math.Abs(a.num - b.num),
a
}).OrderBy(p => p.x).LastOrDefault();
if (query != null) Console.WriteLine(query.a);
var query = list1.Join(list2, a => a.time, b => b.time, (a, b) => new
{
x = Math.Abs(a.num - b.num),
a
}).OrderBy(p => p.x);
if (query.Any()) Console.WriteLine(query.LastOrDefault().a);
list1.Add(new { id = "1", num = 11, time = "2015-10-10 10:10:10" });
list1.Add(new { id = "2", num = 22, time = "2015-10-10 11:11:11" });
list1.Add(new { id = "3", num = 33, time = "2015-10-10 12:12:12" });
List<dynamic> list2 = new List<dynamic>();
list2.Add(new { id = "11", num = 18, time = "2015-10-10 10:10:10" });
list2.Add(new { id = "21", num = 10, time = "2015-10-10 11:11:11" });
list2.Add(new { id = "3", num = 55, time = "2015-10-10 12:12:12" });
var query = from x in list1
join y in list2 on x.time equals y.time
orderby y.num - x.num descending
select y;
if(query.Any())
Console.WriteLine(query.First().id);
Console.ReadKey();
List<dynamic> list1 = new List<dynamic>();
list1.Add(new { id = "1", num = 11, time = "2015-10-10 10:10:10" });
list1.Add(new { id = "2", num = 22, time = "2015-10-10 11:11:11" });
list1.Add(new { id = "3", num = 33, time = "2015-10-10 12:12:12" });
List<dynamic> list2 = new List<dynamic>();
list2.Add(new { id = "11", num = 18, time = "2015-10-10 10:10:10" });
list2.Add(new { id = "21", num = 10, time = "2015-10-10 11:11:11" });
list2.Add(new { id = "3", num = 55, time = "2015-10-10 12:12:12" });
var query = (from l1 in list1
join l2 in list2 on l1.time equals l2.time
orderby Math.Abs(l1.num - l2.num) descending
select l1).First();
Console.WriteLine(query.id + " " + query.num);