【发布时间】:2016-07-04 08:05:26
【问题描述】:
我的主要问题是:如果我将“N”组添加到公司并在最后检查它,我会看到所有“人”都像一起排列到所有组中?
我的问题在于类或引用的定义。
这是我的代码:
public class Man
{
public int Code { get; set; }
public string Name { get; set; }
public int Priority { get; set; }
public int Stoptime { get; set; }
public Boolean Lunch { get; set; }
public DateTime Arrival { get; set; }
public DateTime Departure { get; set; }
public int LunchTime { get; set; }
}
public class Group
{
public List<Man> People { get; set; }
public double Speed { get; set; }
public double Rate { get; set; }
public double Surcharge { get; set; }
public double TotalRate { get; set; }
}
public class Company
{
public List<Group> Groups { get; set; }
public Group BestGroup { get; set; }
public double Rate { get; set; }
public double Surcharge { get; set; }
public double FullRate { get; set; }
}
private List<Man> ShufflePosts(List<Man> ShufflePeoples)
{
List<Man> Temp = ShufflePeoples;
List<Man> Commixed = new List<Man>();
Random rand = new Random();
do
{
int shf = rand.Next(0, Temp.Count);
Commixed.Add(Temp[shf]);
Temp.RemoveAt(shf);
} while (Temp.Count > 1);
Commixed.Add(Temp[0]);
return Commixed;
}
public void CAStart(List<Man> Peoples)
{
var _Race = new Company();
_Race.Groups = new List<Group>();
for (int i = 0; i < 5; i++)
{
var Gr = new Group();
Gr.People = ShufflePosts(Peoples);
_Race.Groups.Add(Gr);
}
}
在代码Commixed.Add(Temp[0]); VS 中显示错误索引超出范围。
我检查变量并查看以下数据:
ShufflePeoples.Count = 0, Temp.Count = 0, Commixed.Count = 1
为什么会这样? 我的问题在哪里?
【问题讨论】:
-
顺便说一句 - 下次通过你得到的错误询问 - 然后你会找到this question
-
你试过调试你的代码吗?