我有一个列表,用于存储来自不同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];
}
}
}
答案 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查询)