我有一個用HTTP發佈到一個* .aspx頁面的id列表。在服務器上,我試圖將該列表與對象列表進行比較,以查看哪些對象的PrimaryKey ID字段缺少來自沒有相應對象(添加)的發佈ID(又名刪除)和ID的ID。這是我的LINQ得到刪除:LINQ包含帶有列表的語法<string>
List<string> ids = new List<string>(txtParticipants.Value.Split(','));
List<NetworkEvent> deletes = e.NetworkEvent.Where(c =>
!ids.Contains(c.NetworkID.ToString())).ToList<NetworkEvent>();
此刪除查詢工作正常。我的問題是產生相反的,補充。這是我的嘗試(我需要幫助)。問題是我如何引用Contains()謂詞中List的字符串?很明顯,c本身是錯誤的,但我如何引用它?
List<string> adds = newids.Where(c=> (e.NetworkEvent.Select
(z=> z.NetworkID).Contains(int.Parse(c)));
希望我的問題有道理(?!)。謝謝。
您是否嘗試過使用LINQ的Except()函數。例如:IEnumerable1.Except(IEnumberable2);會給你1中所有不在2中的項目。 – Zachary 2011-04-02 04:55:37
標識符是否都是純字符串數據,還是它們是整數(或其他更簡單的類型)的字符串表示?儘可能避免通過字符串集合進行搜索。這樣你就不必處理區分大小寫,多餘的空白和其他類似的字符串問題。 – 2011-04-02 04:59:49