C#用于循环和加法
我有一个C#类的人,我试图计算他们的总小时数:C#用于循环和加法,c#,loops,foreach,C#,Loops,Foreach,我有一个C#类的人,我试图计算他们的总小时数: Person Person1 = new Person(); Person1.Name = "Paul"; Person1.Age = 38; Person1.actualGender = Person.Genders.male; Person1.workedHours = 15.5f; Person Person2 = new Person();
Person Person1 = new Person();
Person1.Name = "Paul";
Person1.Age = 38;
Person1.actualGender = Person.Genders.male;
Person1.workedHours = 15.5f;
Person Person2 = new Person();
Person2.Name = "Frank";
Person2.Age = 15;
Person2.actualGender = Person.Genders.female;
Person2.workedHours = 5f;
我可以这样做:
float TotalHours;
TotalHours = Person1.workedHours + Person2.workedHours;
但是我如何在foreach循环中真正做到这一点,因为我肯定会有两个以上的人
我的班级:
{
public string Name { get; set; }
public int Age { get; set; }
public enum Genders { male, female }
public Genders actualGender { get; set; }
public float workedHours { get; set;}
}
我建议使用一个列表,即: 构建一个列表以保存对象:
List<Person> peopleList = new List<Person>();
// call peopleList.add then add your objects
使用foreach
循环:
float totalHours = 0;
foreach(Person p in peopleList){
totalHours += p.workedHours;
}
我建议使用一个列表,即: 构建一个列表以保存对象:
List<Person> peopleList = new List<Person>();
// call peopleList.add then add your objects
使用foreach
循环:
float totalHours = 0;
foreach(Person p in peopleList){
totalHours += p.workedHours;
}
您必须在列表中添加对象,并且: 如果您想要总金额,您可以这样做:
var totalHours = people.Sum(p => p.workedHours);
foreach (var person in people)
{
var sum = people.Where(p => p.Name.Equals(person.Name)).Sum(p => p.workedHours);
Console.WriteLine(sum);
}
如果您想要人均工作时间,您可以这样做:
var totalHours = people.Sum(p => p.workedHours);
foreach (var person in people)
{
var sum = people.Where(p => p.Name.Equals(person.Name)).Sum(p => p.workedHours);
Console.WriteLine(sum);
}
您必须在列表中添加对象,并且: 如果您想要总金额,您可以这样做:
var totalHours = people.Sum(p => p.workedHours);
foreach (var person in people)
{
var sum = people.Where(p => p.Name.Equals(person.Name)).Sum(p => p.workedHours);
Console.WriteLine(sum);
}
如果您想要人均工作时间,您可以这样做:
var totalHours = people.Sum(p => p.workedHours);
foreach (var person in people)
{
var sum = people.Where(p => p.Name.Equals(person.Name)).Sum(p => p.workedHours);
Console.WriteLine(sum);
}
您应该在
foreach
之前学习使用数组。您应该在foreach
此行var sum=people.Where(p=>p.Name.Equals(person.Name)).sum(p=>p.workedHours)之前学习使用数组
是多余的、不必要的,当两个或更多人同名时,会给出错误的结果。如果你想要每个人的工作时间,为什么不只是Console.WriteLine(person.workedHours)
在foreach?@Aominè中,我只是使用类似于示例的名称,正确的是标识字段。如果您像显示的那样单独显示person.workedHours,则当列表中有多个相同的人时,您不会对其他人的小时数求和。此行var sum=people.Where(p=>p.Name.Equals(person.Name)).sum(p=>p.workedHours)
是多余的、不必要的,当两个或更多人同名时,会给出错误的结果。如果你想要每个人的工作时间,为什么不只是Console.WriteLine(person.workedHours)
在foreach?@Aominè中,我只是使用类似于示例的名称,正确的是标识字段。如果您单独显示person.workedHours,则当列表中有多个相同的人时,您不会对其他的小时数求和