Мне было интересно, возможно ли это. Вот код, который заполняет список:
var allHolds =
from a in db.Record_HoldDatas
join f in db.LUT_Flavors on a.Flavor equals f.ID
into flavorNames
where a.HoldStatus == "Open"
from grouped in flavorNames
select new { a.HoldID, a.DateOpened, grouped.flavor, a.NonConformingItem,
Caption = a.HoldID + " - " + a.Package + " " + grouped.flavor };
lbxHoldCaption.DataSource = allHolds;
lbxHoldCaption.DisplayMember = "Caption";
что я хочу сделать, это написать цикл, который проходит через каждый объект в списке и использует несколько значений для некоторой математики. Если математическим результатом является определенное значение, я хочу, чтобы оно изменило цвет фона этого элемента.
Я не уверен, как использовать цикл foreach с этим. Поскольку список действительно привязан к ссылке, полной анонимных типов
Более конкретно, это то, что я делаю:
Одним из значений в объекте, возвращаемом из запроса, является datetime «DateOpened»
Я хочу вычесть сегодняшнее время с этим, чтобы определить прошедшие часы. я использовал что-то вроде этого
DateTime now = DateTime.Now;
DateTime then = //retrieved from query object
TimeSpan span = now - then;
Я надеялся сделать все это с чем-то вроде
foreach(Object obj in allHolds)
{
then = obj.DateOpened;
span = now - then;
if(span.TotalHours >= 48)
{
obj.BackColor = Color.Red;
}
}
но, очевидно, это не сработает, потому что все ссылки не выполняются. Кто-нибудь может мне помочь?