代码之家  ›  专栏  ›  技术社区  ›  Arvind Chourasiya

无法将类型list<schoolfee.feecollection>隐式转换为list<student.feecollection>错误

  •  -2
  • Arvind Chourasiya  · 技术社区  · 6 年前

    我有 List 打电话 FeeCollection 在两个不同的地方 List<BO.SchoolFee.FeeCollection> 和; List<BO.Student.FeeCollection> . 当我分配 SchoolFee.FeeCollection 对象到 Student.FeeCollection 显示错误。我的密码

     studentObj.FeesCollectionPending = paymentlist; 
    

    错误截图

    enter image description here

    我怎么解决这个问题?谢谢您。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Harald Coppoolse    6 年前

    BO.SchoolFee.FeeCollection BO.Student.FeeCollection

    FeeCollections

    class FeeCollection : IEnumerable<Fee> {...}
    

    IEnumerable<Fee> ICollection<Fee>

    IEnumerable<fee>

    FeeCollection(IEnumerable<Fee> fees)
    {
        foreach (Fee fee in fees)
           this.Add(fee);
    }
    

    extension method demystified

    static Student.FeeCollection ToStudentFeeCollection(this IEnumerable<Fee> fees)
    {
          Student.FeeCollection feeCollection = new Student.FeeCollection();
          foreach (Fee fee in fees)
          {
              feeCollection.Add(fee);
          }
          return feeCollection;
    }
    
    static Student.FeeCollection ToStudentFeeCollection(this SchoolFee.Collection schoolFeeCollection)
    {
         IEnumerable<Fee> schoolFees = schoolFeeCollection;
         return schoolFees.ToStudentFees();
    
         // or if you don't want to implement IEnumerable<Fee>:
         var studentFeeCollection = new Student.FeeCollection();
         foreach (var schoolFee in schoolFeeCollection.GetFees())
         {
              studentFeeCollection.Add(schoolFee);
         }
    }
    

    List<School.FeeCollection> schoolFeeCollections = ...
    // convert every schoolFeeCollection to a StudentFeeCollection:
    List<Student.FeeCollection> studentFeeCollections = schoolFeeCollections
        .Select(schoolFeeCollection => schoolFeeCollection.ToStudentFeeCollection())
        .ToList();
    

    Student.Fee ToStudentFee(this School.Fee schoolFee)
    {
        return new Student.Fee()
        {
            Description = schoolFee.Description,
            Amount = schoolFee.Amount,
            DueDate = schoolFee.DueDate,
        };
    }
    
        2
  •  2
  •   Alexander    6 年前

    SISBOLibrary.BO.SchoolFee.FeesCollection SISBOLibrary.BO.Student.FeesCollection paymentlist

    studentObj.FeesCollectionPending = paymentlist
        .Select(p => new SISBOLibrary.BO.Student.FeesCollection { 
            field1 = p.field1,
            field2 = p.field2,
            //and so on
        })
        .ToList(); 
    

    Automapper

        3
  •  1
  •   NoImagination    6 年前

    推荐文章