簡體   English   中英

如何插入可枚舉列表,該列表是另一個列表的成員

[英]How to insert into an enumerable list, which is an member of another list

我有一個AcadamicFee列表,有時我想在Fee下插入一個項目。 因此,它應該像Fee[1]Fee[2].modified一樣添加。修改如下代碼。

我想在Fee列表下插入一項新項目。 但是沒有反映。 如何通過 Linq 更新AcadamicFee列表?

提前致謝。

AcadamicFee[0]
    {
        ----
    ----
    ----
        TermDetails [0]
    {
        ---
        Fee[0]
        Fee[1]
        Fee[2]
    }
    

    }

    public class Fee
    {
        public int FeeID { get; set; }
        public string FeeName { get; set; }
        public string FeeAmount { get; set; }
        public string IsFineApplicable { get; set; }
        public string LastDate { get; set; }
    }

    public class Ter
    {
        public int TermID { get; set; }
        public string TermName { get; set; }
        public IEnumerable<Fee> FeeDetails { get; set; }
    }

    public class AcadamicFee
    {
        public int id { get; set; }
        public string AdmissionID { get; set; }
        public string StudentName { get; set; }
        public int Class { get; set; }
        public string AcadamicYear { get; set; }
        public Nullable<int> TotalPaid { get; set; }
        public Nullable<int> AcadamicAmount { get; set; }
        public Nullable<int> BalanceAmount { get; set; }
        public IEnumerable<Term> TermDetails { get; set; }
    }

任何線索如何處理 Linq? 我試過這樣的事情:

for (var i = 0; i < fees.Count; i++)
{
    bool termDetailsExist = acadamic_fee.Any(a => a.TermDetails.Any(b => b.TermID == fees[i].TermID));

    if (termDetailsExist)
    {
        foreach (AcadamicFeeModel acm in acadamic_fee)
        {
            foreach (TermModel trm in acm.TermDetails)
            {
                if (trm.TermID == fees[i].TermID)
                {
                    List<FeeModel> FeeType = new List<FeeModel>();
                    FeeType.Add(new FeeModel
                                    {
                                        FeeID = fees[i].FeeID,
                                        FeeName = fees[i].FeeName,
                                        FeeAmount = fees[i].FeeAmount,
                                        IsFineApplicable = fees[i].IsFineApplicable,
                                        LastDate = fees[i].LastDate,
                                    });
                    trm.FeeDetails.ToList().AddRange(FeeType);
                }
            }
        }
    }
}
trm.FeeDetails.ToList().AddRange(FeeType);

您創建了一個新的List<FeeModel> ,添加了FeeDetails序列的副本,添加了一個新的FeeModel object,然后將新列表扔掉了

您需要將修改后的列表存儲在屬性中 - 例如:

foreach (TermModel trm in acm.TermDetails)
{
    if (trm.TermID == fees[i].TermID)
    {
        List<FeeModel> FeeType = new List<FeeModel>();
        
        FeeType.Add(new FeeModel
        {
            FeeID = fees[i].FeeID,
            FeeName = fees[i].FeeName,
            FeeAmount = fees[i].FeeAmount,
            IsFineApplicable = fees[i].IsFineApplicable,
            LastDate = fees[i].LastDate,
        });
        
        FeeType.AddRange(trm.FeeDetails);
        trm.FeeDetails = FeeType;
    }
}

暫無
暫無

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

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