我正在研究一個Windows窗體應用程序,其目的是計算並顯示存儲在文本文件中的薪資統計信息。獲取與最高平均十進制值相關聯的字符串
我現在有一個任務存在問題:計算哪個專業誰擁有最高的平均當前工資。
我已將每個薪資統計信息存儲爲SalaryInformation對象。我會告訴你SalaryInformation類是怎麼樣的:
public sealed class SalaryInformation
{
private string profession;
private int yearOfEmployment;
private decimal startSalary;
private decimal currentSalary;
public string Profession
{
get { return profession; }
set { profession = value; }
}
public int YearOfEmployment
{
get { return yearOfEmployment; }
set { yearOfEmployment = value; }
}
public decimal StartSalary
{
get { return startSalary; }
set { startSalary = value; }
}
public decimal CurrentSalary
{
get { return currentSalary; }
set { currentSalary = value; }
}
public SalaryInformation()
{ }
public SalaryInformation(string p, int yoe, decimal startS, decimal currentS)
{
profession = p;
yearOfEmployment = yoe;
startSalary = startS;
currentSalary = currentS;
}
我想要做的就是返回一個字符串。 SalaryInformation對象的專業屬性,與最高平均值currentSalary關聯。 請記住,有幾個具有共同職業價值的SalaryInformation對象(例如,三個SalaryInformation對象在屬性專業上具有值「doctor」)。
我開始用這種方法,和我被困在這裏:
public string GetHighestPaidProfession()
{
string highestPaidProfession = "";
//Gets all the salaryInformation objects and stores them in a list
List<SalaryInformation> allSalaries = new List<SalaryInformation>();
allSalaries = data.GetSalaryInformation();
//Right here I don't know how to do the rest from here.
//I realize that I have to calculate the average currentsalary from every
//SalaryInformation I got in the list allSalaries. But then I have to
//to get the actual profession which has the highest average currentsalary
//among them. It's right there I get stuck.
return highestPaidProfession;
}
如果你需要更多的代碼和細節,只是讓我知道,我會添加到這個線程。
我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
[如何使用LINQ選擇具有最小或最大屬性值的對象]的可能重複(http://stackoverflow.com/questions/914109/how-to-use-linq-to-select-object-with-minimum- or-maximum-property-value) - 您正在尋找'AverageBy()',而不是'MinBy()'或'MaxBy()',但邏輯相同。 – Bobson