C#如何平均数组输入
我的代码的第一部分非常完整,我得到了其余的要点,我只是不确定如何把所有的代码放在一起。这是第一部分C#如何平均数组输入,c#,arrays,loops,input,average,C#,Arrays,Loops,Input,Average,我的代码的第一部分非常完整,我得到了其余的要点,我只是不确定如何把所有的代码放在一起。这是第一部分 using System; namespace ConsoleApplication1 { class Program { public class AccountInfo { public int Number { get; set; } public double Balance { get; se
using System;
namespace ConsoleApplication1
{
class Program
{
public class AccountInfo
{
public int Number { get; set; }
public double Balance { get; set; }
public string LastName { get; set; }
}
static void Main(string[] args)
{
List<AccountInfo> accounts = new List<AccountInfo>();
for (int index = 1; index < 6; index++)
{
AccountInfo acc = new AccountInfo();
Console.Write("Enter account number: " + index.ToString() + ": ");
acc.Number = int.Parse(Console.ReadLine());
Console.Write("Enter the account balance: ");
acc.Balance = double.Parse(Console.ReadLine());
Console.Write("Enter the account holder last name: ");
acc.LastName = Console.ReadLine();
accounts.Add(acc);
}
}
}
}
使用系统;
命名空间控制台应用程序1
{
班级计划
{
公共类AccountInfo
{
公共整数{get;set;}
公共双平衡{get;set;}
公共字符串LastName{get;set;}
}
静态void Main(字符串[]参数)
{
列表帐户=新列表();
对于(int-index=1;index<6;index++)
{
AccountInfo acc=新的AccountInfo();
Console.Write(“输入账号:”+index.ToString()+“:”);
acc.Number=int.Parse(Console.ReadLine());
控制台。写入(“输入帐户余额:”);
acc.Balance=double.Parse(Console.ReadLine());
控制台。写入(“输入帐户持有人姓氏:”);
acc.LastName=Console.ReadLine();
账户。添加(acc);
}
}
}
}
第二部分是询问用户希望对阵列做什么
输入a或a以搜索帐号 输入a b或b以对账户进行平均 输入x或x以退出程序
搜索部分我可以使用如下内容:
public void search Accounts()
{
for(int x = 0; x < validValues.Lenth; ++x)
{
if(acctsearched == validValues[x])
{
isValidItem = true;
acctNumber = Number[x];
}
}
var foundAcct = accounts.SingleOrDefault(x=>x.Number==someSearchNum);
公共无效搜索帐户()
{
对于(int x=0;x
我可以使用带有布尔真/假的while循环来结束
我不确定如何获得平均余额。我不断收到类似“无法将int[]隐式更改为int”的错误
非常感谢您的帮助。听起来您有一个
AccountInfo
列表。您能使用LINQ吗
要获得平均值,可以使用LINQ执行以下操作:
double avg = accounts.Select(x=>x.Balance).Average();
要搜索给定帐户,可以执行以下操作:
public void search Accounts()
{
for(int x = 0; x < validValues.Lenth; ++x)
{
if(acctsearched == validValues[x])
{
isValidItem = true;
acctNumber = Number[x];
}
}
var foundAcct = accounts.SingleOrDefault(x=>x.Number==someSearchNum);
要使其工作(并为这两个操作创建方法),您需要将列表帐户
移出主
,并在类中声明
使用LINQ,您需要.NET 3.5或更高版本。使用系统;
命名空间分配周3
{
类别帐户
{
//私有类成员,创建新数组
私有整数[]账号=新整数[5];
专用双精度[]AcctBalance=新双精度[5];
私有字符串[]LastName=新字符串[5]
public void fillAccounts()//fill arrays with user input
{
int x = 0;
for (int i = 0; i < AcctNumber.Length; i++)
{
Console.Write("Enter account number: ");
AcctNumber[x] = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter account balance: ");
AcctBalance[x] = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter account holder last name: ");
LastName[x] = Convert.ToString(Console.ReadLine());
x++;
}
}
public void searchAccounts() //search account method to be called later in main()
{
int accountNum = 0;
bool isValid = false;
int x = 0;
Console.Write("Please enter account number to search for: ");
accountNum = Convert.ToInt32(Console.ReadLine());
while (x < AcctNumber.Length && accountNum != AcctNumber[x])
++x;
if(x != AcctNumber.Length)
{
isValid = true;
}
if(isValid){
Console.WriteLine("AcctNumber: {0} Balance: {1:c} Acct Holder: {2}", AcctNumber[x], AcctBalance[x], LastName[x]);
}
else{
Console.WriteLine("You entered an invalid account number");
}
}
public void averageAccounts()//averageAccounts method to be store for later use
{
// compute and display average of all 5 bal as currency use length.
int x = 0;
double balanceSum = 0;
double Avg = 0;
for (x = 0; x < 5; x++ )
{
balanceSum = balanceSum + AcctBalance[x];
}
Avg = (balanceSum / x);
Console.WriteLine("The average balance for all accounts is {0:c}", Avg);
}
} //end public class Accounts
}
}@Musi:nice!我还没意识到他们已经到了那种程度。Albahari的家伙真是太棒了。@MusiGenesis-OMG best link Every我自己从来没有用过它-我在谷歌上搜索过“linq in.net 2.0”并发现了(和往常一样)一个StackOverflow的回答提到了LinqBridge。也许我们都应该养成习惯,定期用谷歌搜索我们希望能得到的东西——否则当它最终出现时,我们会错过它。:)