我有2個列表。首先是包含一系列對象的主列表,每個對象都有時間戳(Datetime),類型(int),值(double)和標誌(int)。第二個列表有類型(int)和描述(字符串)。使用linq通過第二個列表修改列表
我的問題是我需要的第一個列表有各類在每個時間戳。在沒有這種對象匹配(時間戳,類型)的情況下,我需要插入一個新的對象(時間戳,類型,空值和空標誌)。
如何做到這一點使用LINQ?
實施例的對象:
var date = DateTime.UtcNow;
var points = new List<Point> {
new Point { ts_utc = date , type = 300, value = 25 , flags = 0 },
new Point { ts_utc = date , type = 400, value = 250 , flags = 0 },
new Point { ts_utc = date , type = 500, value = 2500 , flags = 0 },
new Point { ts_utc = date.AddDays(1) , type = 300, value = 26 , flags = 0 },
//new Point { ts_utc = date.AddDays(1) , type = 400, value = 260, flags = 0 },
new Point { ts_utc = date.AddDays(1) , type = 500, value = 2600 , flags = 0 },
new Point { ts_utc = date.AddDays(2) , type = 300, value = 27 , flags = 0 },
new Point { ts_utc = date.AddDays(2) , type = 400, value = 270 , flags = 0 },
new Point { ts_utc = date.AddDays(2) , type = 500, value = 2700 , flags = 0 }
};
var desc = new List<Description> {
new Description{ type = 300, description = "300" },
new Description{ type = 400, description = "400" },
new Description{ type = 500, description = "500" },
};
var q = from p in points
join d in desc on p.type equals d.type into joined
from subd in joined.DefaultIfEmpty(...)
...
查詢是不完整的。在上面的列表中,我已將一個Point作爲缺省值(時間戳,類型)組合的示例進行了評論。在那個地方,我想有一個默認對象插入時間戳從一個現有的類型,但插入缺少的類型。值和標誌應該爲空。我想一個小組可能會派上用場?
這也將「刪除」基於時間戳和類型重複。 – juharr
是的。幸運的是,我可以確信重複不會發生。 – galmok