まあ、これは簡単な...
using System;
using System.Diagnostics;
using System.Linq;
namespace Test {
class Program {
static void Main(string[] args) {
var items = new[] {
new { Code= "X", Price=0.01, DateTime="12/01/2017 08:00pm" },
new { Code ="Y", Price=0.02, DateTime="12/01/2017 05:40pm" },
new { Code ="X", Price=0.03, DateTime="12/01/2017 02:00pm" }
};
var newItem = new { Code = "X", Price = 0.04, DateTime = "12/01/2017 09:00pm" };
var xItems = items.Where(x => x.Code == "X");
var minDateTime = xItems.Select(x => x.DateTime).Min();
Debug.WriteLine($"minDateTime={minDateTime}");
var minItem = xItems.Where(x => x.DateTime == minDateTime).Single();
Debug.WriteLine($"minItem.Price={minItem.Price}");
bool withinPercent = Math.Abs(newItem.Price/minItem.Price - 1.0) < 0.1;
Debug.WriteLine($"newItem within 10%={withinPercent}");
}
}
}
この出力...
minDateTime=12/01/2017 02:00pm
minItem.Price=0.03
newItem within 10%=False
感謝kのようです。コードXをフィルタリングするようにコードを更新してください。このセットには、提供した元のコードにコード(たとえば、コード= "Y")などの差分コードが含まれます。 – user8570495