我有這段代碼,我通常用來更新/洗掉/創建專案
HashSet<int> current = new HashSet<int>(diagram.Links.Select(lnk => lnk.IDInput);
HashSet<int> received = new HashSet<int>(d.Links.Select(lnk => lnk.IDInput));
IEnumerable<int> delete = current.Except(received);
IEnumerable<int> new = received.Except(current);
當我的串列與一個 ID 一起使用時,它可以完美運行,但在這種情況下,我想做一些事情,比如 diagram.Links.Select(lnk => lnk.IDInput AND lnk.IDOutput)Is it even possible 還是應該使用 Where 代替?
先感謝您
uj5u.com熱心網友回復:
我會選擇這三個選項之一
創建動態物件
diagram.Links.Select(lnk => new {lnk.IDInput, lnk.IDOutput})創建一個 Touple 物件
diagram.Links.Select(lnk => (lnk.IDInput, lnk.IDOutput))創建一個 Class / Struct 并將其用作回傳的物件
public class IDHolder { public string IDInput; public string IDOutput; } diagram.Links.Select(lnk => new IDHolder() {IDInput = lnk.IDInput, IDOutput = lnk.IDOutput}))
這三個都可以,后者在我的口味中是最連貫的,但選擇最適合你的。
uj5u.com熱心網友回復:
為了不更改代碼中的其他邏輯,您可以Concat像這樣簡單地使用:
HashSet<int> current = new HashSet<int>(diagram.Links.Select(lnk => lnk.IDInput)
.Concat(diagram.Links.Select(lnk => lnk.IDOutput)));
HashSet<int> received = new HashSet<int>(d.Links.Select(lnk => lnk.IDInput)
.Concat(d.Links.Select(lnk => lnk.IDOutput)));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434731.html
上一篇:如何使用條件連接串列中的專案
