比较两个列表并返回常用条目

Rem*_*rME 2 c# list

我有一个供应商列表.我还有一个供应商ID列表.

    public List<SAP_Vendor> Vendors { get; set; }
    public List<string> SubcontractVendorIDs { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想返回List<SAP_Vendor>其中的ID位于SubcontractVendorIDs列表中的供应商.

List<SAP_Vendor> SubcontractVendors = Vendors.Select(??).ToList();
Run Code Online (Sandbox Code Playgroud)

要么

List<SAP_Vendor> SubcontractVendors = Vendors.Where(??).ToList();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ade 9

使用谓词中的Contains()方法Where():

List<SAP_Vendor> SubcontractVendors = Vendors.Where(v=> SubcontractVendorIDs.Contains(v.VendorID)).ToList();
Run Code Online (Sandbox Code Playgroud)


dtb*_*dtb 8

您可以执行内部联接:

var query = from vendor in Vendors
            join id in SubcontractVendorIDs on vendor.ID equals id
            select vendor;

List<SAP_Vendor> subcontractVendors = query.ToList();
Run Code Online (Sandbox Code Playgroud)

  • 作为单行:Vendors.Join(SubcontractVendorIDs,v => v.ID,sv => sv,(v,sv)=> v).ToList(); (2认同)