Ich habe Stunden damit verbracht, einen Weg zu finden, Elemente in das Objekt in meiner Liste einzufügen. Das habe ich gemacht.C# - Hinzufügen eines Objekts zu einem bestimmten Index in der Liste
data = await (from iw in _context.InvestorWallets
join m in memberdata on iw.investorid equals m.id
where _context.InvestorDeposit.Any(item => item.investordepositid == iw.transactionid) ||
_context.InvestorWithdrawal.Any(item => item.withdrawalid == iw.transactionid) ||
_context.InstallmentPaymentDistribution.Any(item => item.paymentdistributionid == iw.transactionid)
select new InvestorWalletsViewModel()
{
username = m.userName,
fullname = m.fullName,
isActive = m.isActive,
memberType = m.memberType,
memberTypeName = m.memberTypeName,
emailAddress = m.emailAddress,
trxdate = iw.trxdate,
trxdesc = iw.trxdesc,
debit = iw.acounttype.ToLower() == "db" ? iw.amount : 0,
credit = iw.acounttype.ToLower() == "cr" ? iw.amount : 0,
investorid = iw.investorid,
investorwalletid = iw.investorwalletid,
transactiontype =
(
iw.transactiontype.ToLower() == "dep" ? "Deposit" :
iw.transactiontype.ToLower() == "wit" ? "Withdrawal" :
iw.transactiontype.ToLower() == "rep" ? "IB-1610043 - Repayment" : "REGULER"
),
paymentdistributionid =
(
iw.transactiontype.ToLower() == "rep" ? iw.transactionid??0 : 0
),
details = new List<InvestorWalletsViewModelDetail>(), // <-- I want to insert some object to this list
previousbalance = iw.previousbalance
}).Distinct().ToListAsync();
//This is to retrieve data from another table, based on data
var data2 = (from i in _context.InstallmentPaymentDistributionDetails.Where(p => p.amount > 0)
where data.Any(d => d.paymentdistributionid == i.paymentdistributionid)
select i).Distinct().ToList();
//I used ForEach to itterate through the List, and fill the object
data2.ForEach(d =>
{
var x = data.Find(z => z.paymentdistributionid == d.paymentdistributionid);
if (x == null) return;
//This is where I insert the value to the List
x.details.Add(new InvestorWalletsViewModelDetail //This code right here, it insert the value to all rows in the List, i just want to add the value to the specific row in the List
{
actualpayment = d.amount,
installmentfeetype_name = d.installmentfeetype_name
});
});
}
Wie Sie auf meiner FürJeden sehen können, füge ich den Wert auf die Details (Liste innerhalb List). Aber was gefappelt ist, es hat den Wert in die Liste eingefügt, aber es hat den Wert ALL Zeile in der Liste eingefügt, wenn es nur den Wert in die bestimmte Zeile/den Index einfügen soll. Ich möchte nur den Wert in die spezifische Zeile in der Liste einfügen.
Anyhelp versteht Jungs werden,
Dank
Iterieren durch die Liste data2 notwendig, um das Objekt zu füllen ?? Ist es nicht möglich, den Datensatz aus der Liste data2 zu finden und den Wert aus dem Objekt zu setzen, ohne ihn zu durchlaufen? – gkb
hmm, meinst du ohne foreach? – Webster
Yess ... einfach schnappen Sie sich die Zeile und fügen Sie das Objekt ... – gkb