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。也许我们都应该养成习惯,定期用谷歌搜索我们希望能得到的东西——否则当它最终出现时,我们会错过它。:)