c# - 如何在C#中计算数组(工资)中元素的平均值
问题描述
我还需要添加或更改什么来显示我的员工年龄在 25 到 35 岁之间,他们的工资高于平均工资。此程序仅显示 25 至 35 岁的员工。
for (int i = 0; i < employeename; i++)
{
while (br.PeekChar() != -1)
{
function[i].Name= br.ReadString();
function[i].Function= br.ReadString();
function[i].Age= br.ReadInt32();
function[i].salary= br.ReadInt32();
function[i].Studies= br.ReadString();
if ((function[i].Age>25) && (function[i].Age<35))
{
string str = String.Format("|{0,-21}|{1,-9}|{2,-7}|{3,-16}|{4,-12}|", function[i].Name, function[i].Function,
function[i].Age.ToString(), function[i].Salary.ToString(), function[i].Studies);
Console.WriteLine(str);
}
}
}
Console.ReadKey();
br.Close();
解决方案
我认为您需要在过滤之前读取所有数据并计算 avgSalary:
使用参数 Name、Function、Age、Salary、Study 将您的数据映射到 Employee 类中。
var employees = new List<Employee>();
while (br.PeekChar() != -1)
{
var employee = new Employee() {
Name= br.ReadString(),
Function= br.ReadString(),
Age= br.ReadInt32(),
Salary= br.ReadInt32(),
Studies= br.ReadString()
};
employees.Add(employee);
}
var avgSalary = employees.Select(x => x.Salary).Average();
var finalList = employees.Where(x => x.Age > 25 && x.Age < 35 && x.Salary > avgSalary).ToList();
您需要为此使用 EF 和 LINQ。
推荐阅读
- visualization - 如何在VTK中将曲面显示为三角线?
- azure-log-analytics - 使用“汇总方式”时,将 UTC 'TimeGenerated' 转换为 Azure 监视器/日志/分析中的本地时间
- reactjs - 在 redux 更改后使用 json 更新数据的外部源
- excel - 如何在数据集中参考上个月的高点或低点并将其与当前值进行比较
- python - 为什么我不能从稳定的基线导入'make_vec_env'?
- react-native - 我应该怎么做才能使用 react native expo 在谷歌地图中添加当前位置?
- windows - 我应该如何处理 dism powershell 错误?
- visual-studio-code - 是否有键盘快捷键可以在 diff/compare-two-files 编辑器的左侧和右侧之间切换?
- python - google-cloud-sdk 安装因 python 语法错误而失败
- apache-spark - Spark推测的新任务有限制吗?