简体   繁体   中英

In C#, using linq how do I pass list type parameters to a method?

I have a situation where I need to store data in list and just pass the relevant fields to my method, how can I do this, please see my code below.

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
    {
        IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
        using (EmbraceEntities context = new EmbraceEntities())
        {
            var validatedList = context.Supplier_Claim_Upload(claimsData.LineNunber, claimsData.TotalClaim);// i get an error over here
            return new List<Supplier_Claim_Upload_Result>(validatedList);
        }
    }

Please try with the below code snippet. You got error because you tried to access property from collection in-place of object.

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
                lst.AddRange(context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim));
        }
    }
    return lst;
}

Update 1:

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
            var test = context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim);
            lst.AddRange(test.ToList<Supplier_Claim_Upload_Result>());
        }
    }
    return lst;
}

Update 2:

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
            var test = context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim);
            foreach (var childitem in test)
            {
                lst.Add(childitem);   
            }
        }
    }
    return lst;
}

Let me know if any concern.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM