使用list.Add向列表添加集合时出现问题

时间:2012-10-12 10:55:33

标签: linq c#-4.0 generics

 private List<T> ParsePolicyDetails<T>(List<HouseHoldview> lsthousehold)
    {
        List<T> lstPolicyInfo = new List<T>();

        var checkInHouseHold = from c in lsthousehold
                               where c.PolicyDetail.Any(p => p.LineOfBusiness.Trim().ToUpper() == "A" && p.PolicySourceSystem.ToUpper().Trim() != "PLCS"
                                   && p.PolicySourceSystem.ToUpper().Trim() != "APS"
                                   && p.PolicySourceSystem.ToUpper().Trim() != "FOREMOST")
                               select c.PolicyDetail;

        foreach (var policies in checkInHouseHold)
        {
            var chek=policies.Where(p => p.LineOfBusiness.Trim().ToUpper() == "A" && p.PolicySourceSystem.ToUpper().Trim() != "PLCS"
                                     && p.PolicySourceSystem.ToUpper().Trim() != "APS"
                                     && p.PolicySourceSystem.ToUpper().Trim() != "FOREMOST" && p.LineOfBusiness.ToUpper().Trim() == "A");
            lstPolicyInfo.Add(chek);
        }
        return lstPolicyInfo;
    }

看起来非常简单但代码错误。由于chek不属于T型,如何处理这个

错误是'System.Collections.Generic.List.Add()

的最佳重载方法匹配

2 个答案:

答案 0 :(得分:1)

这种方法不通用;你想要替换

  • List<T>List<WhateverTypeHouseHoldview.PolicyDetailIs>
  • ParsePolicyDetails<T>ParsePolicyDetails
  • lstPolicyInfo.AddlstPolicyInfo.AddRange

答案 1 :(得分:0)

我认为使用var可能会引起混淆。

尝试将它们更改为实际类型,这可以帮助您了解正在发生的事情。

如果没有看到其他类的设置如何,很难说清楚。