我是C#和编程的新手。我正在尝试编写一个控制台程序,打印一个人员列表,然后将它们分成不同的组(取决于他们已售出多少)。
我有一个带有get和sets的People类。我已将“硬编码”列入List并且我已经制作了一个循环,列出了它们的销售量。
接下来我需要做的是打印每个不同的“销售团队”中有多少人。
根据销售量的不同,我列出所有的员工都没有问题,我面临的问题是将它们添加到组中,就像这样 https://gyazo.com/44c4f2437f7958225b18358814f8a27e
List<Emplooye> ObjSeller = new List<Emplooye>();
ObjSeller.Add(new Emplooye("Mille Tarp", 936312, "Danderyd", 140));
ObjSeller.Add(new Emplooye("jonas okembia", 970912, "Riga", 70));
ObjSeller.Add(new Emplooye("milton delavega", 981212, "skövde",
400));
ObjSeller.Add(new Emplooye("christan wallin", 991132, "oslo", 104));
ObjSeller.Add(new Emplooye("Rickard dahl", 974132, "italien", 343));
ObjSeller.Add(new Emplooye("Lovisa wallin", 944432, "nigera", 144));
ObjSeller.Add(new Emplooye("Marget nillson", 9312332, "Riga", 14));
ObjSeller.Sort(delegate (Emplooye t1, Emplooye t2)
{ return (t1.AmountSold.CompareTo(t2.AmountSold)); }
);
for (int i = 0; i < ObjSeller.Count; i++)
{
string name = ObjSeller.ElementAt(i).Name;
int pnr = ObjSeller.ElementAt(i).PersonNummer;
String district = ObjSeller.ElementAt(i).Distrikt;
int amountsold = ObjSeller.ElementAt(i).AmountSold;
Console.WriteLine(name + ": " + pnr + " - " + district + " - " +
amountsold);
}
}
}
答案 0 :(得分:1)
在这个例子中,我们有3组人:
我们有一个包含所有人的列表,我们需要3个列表(组)来移动人员。
List<Person> allPeople = new List<People>();
List<Person> group1, group2, group3;
group1 = group2 = group3 = new List<Person>();
现在我们必须将它们分组......
foreach (Person p in allPeople)
{
if (p.SoldItems > 0 && p.SoldItems <= 100)
group1.Add(p);
else if (p.SoldItems > 100 && p.SoldItems <= 200)
group2.Add(p);
else group3.Add(p);
}
如果您现在想要群组中的人,您只需要遍历列表。
答案 1 :(得分:0)
迭代列表并检查if语句你想把它们放在哪里。
var people = new List<Person>() { ... };
var groups = new Dictionary<string, List<Person>>();
foreach (var person in people) {
if (person.sale > 100) {
List<Person> group;
if (groups.TryGetValue("Whatever", group)) {
group.Add(person);
} else {
groups.Add("Whatever", new List<Person> {
person
});
}
} else if (person.sale < 100 && person.sale > 50) {
....
希望你能得到一般的想法。