我有多次记录一个类。我创建了List并创建了Statsand的对象,然后添加到我的列表中,但所有人都复制了最新的记录。这是我的代码
List<Account> account = accountDao.All().Where(a => a.Role ==
Role.Distributor && a.ParentAccount.Id==1&&a.Active).ToList();
ViewBag.Accounts = account;
List<Stats> statsforRegions = new List<Stats>();
foreach (Account dist in account)
{
List<int> userIdss = new List<int>();
List<int> accountIdss = new List<int>();
Stats stt = new Stats();
stt=stats;
getUserIdsRecursive(dist, userIdss, accountIdss);
stt = calculate(stt, userIdss, accountIdss);
statsforRegions.Add(stt);
}
ViewBag.StatsForRegions = statsforRegions;
答案 0 :(得分:1)
您正在创建新的Stats
对象并将其分配给stt
。
Stats stt = new Stats();
然后您将另一个对象(stats
)分配给stt
,这意味着原始对象将被丢弃。
stt = stats.
您的代码未显示stats
是什么,但我认为它是&#34;最近的记录&#34;你参考。
答案 1 :(得分:0)
以下是向List添加对象的基本示例
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
List<MyObject> MyList = new List<MyObject>();
for (int x = 1; x <= 10; x++)
{
MyObject obj = new MyObject();
obj.Id = x;
MyList.Add(obj);
}
//now show the list
foreach(MyObject obj in MyList)
{
Console.WriteLine(obj.Id.ToString());
}
}
}
public class MyObject
{
public int Id {get;set;}
}
我也为你写了一个小提琴https://dotnetfiddle.net/cnNiI5
答案 2 :(得分:0)
我认为您的calculate
函数返回相同的值并且
stats
没有变化。
stt=stats;
getUserIdsRecursive(dist, userIdss, accountIdss);
stt = calculate(stt, userIdss, accountIdss);