簡體   English   中英

使用LINQ將另一個列表過濾掉列表

[英]Filter Out List with another list using LINQ

嗨,我在這里找不到問題的答案,所以我想我只是問。 我必須列出類,ServiceItem和ServiceDetailsClass。 我想過濾掉所有不是int ServiceItems列表的ServiceDetailClass項。 這是兩個類:

public class ServiceItem
{
    public long ID { get; set; }
    public string Status { get; set; }
}

public class ServiceDetailsClass
{
    public string Name;
    public long ID;
    public int Quantity;
    public string Notes;
    public string Status;
    public string Description;
    public DateTime CreatedDate;
}

到目前為止,我在這里發現的唯一的事情是列表中有列表,所以這有點不同。 這是我能夠提出的所有內容,但是過濾器列表有0個項目,即使我知道它應該有更多:

lstFilteredServiceDetailsClass = lstServiceDetailsClass.Where(i => lstServiceItem.Contains
      (new ServiceItem { lngId = i.ServiceID, strStatus = "Locked" }) 

任何幫助表示贊賞。 謝謝!

您正在創建一個新對象,然后檢查列表以查看該對象/實例是否在其中(即因為它是一個對象,它正在比較該引用)。

相反,您需要查找重疊的ID。

這樣的事情應該有效:

List<ServiceItem> serviceItems;
List<ServiceItemDetails> serviceItemDetails;

var result = serviceItemDetails.Where(sid => serviceItems.Any(si => si.ID == sid.ID))

英文:“ServiceItemDetails的集合,其中服務項列表具有相同ID的項目”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM