如何将列表中的对象从方法返回到方法?

时间:2015-11-22 19:11:50

标签: c# list

我有一个列表,用于存储来自不同Account类的对象。我有一个允许提交帐户的方法。用户输入帐户ID,ID和我的列表将传递给另一个方法,该方法搜索对象以查看该帐户是否存在。我希望它然后将帐户详细信息返回给寄存方法。

我无法弄清楚如何从搜索方法中返回对象。

我的列表如下List<Account> bank;

我在C ++中完成了这项任务,我刚刚开始使用C#,并且很难习惯它。任何帮助将不胜感激!

我的列表如下List<Account> bank;

我在C ++中完成了这项任务,我刚刚开始使用C#,并且很难习惯它。任何帮助将不胜感激!

编辑包含我的代码,但不起作用。

public static void processLodgement(List<CAccount> bank)
            {
                CAccount p;
                string ID;
                double amount = 0;

                Console.WriteLine("Process Lodgement\n");
                Console.WriteLine("Enter account ID\n");
                ID = Console.ReadLine();


                Console.WriteLine("Enter Lodgement Amount\n");
                double.TryParse(Console.ReadLine(), out amount);

                findAccount(bank, ID);






            }

            public static CAccount findAccount(List<CAccount>bank, string accountID)
            {
                for(int i=0; i < bank.Count(); i++)
                {

                    if (bank[i].GetID()==accountID)

                    {
                        return bank[i];

                    }



                }


            }  

1 个答案:

答案 0 :(得分:1)

您需要使用id和帐户列表作为参数,并使用Account作为返回类型。

public Account FindAccount(int id, List<Account bank)
{
   // Look for account based on ID or do something, and return the account.
}

例如,您可以使用LINQ搜索帐户:

return bank.FirstOrDefault(acc => acc.ID == id);

或者只使用循环:

foreach (var acc in bank)
{
     if (acc.ID == id)
         return acc;
}
// Handle account not found.

修改:为了回应您发布的代码,这就是它的外观。

public static CAccount findAccount(List<CAccount>bank, string accountID)
{
     for(int i=0; i < bank.Count; i++)
     {
         if (bank[i].GetID() == accountID)
         {
             return bank[i];
         }
     }
     throw new Exception("Account not found!");
 }  

在方法结束时,您需要返回一些内容(例如null)或抛出错误。另外,使用Count代替Count()以获得更好的性能(Count()用于LINQ查询)