2015-11-22 3 views
1

У меня есть список, который хранит объекты из разных классов Аккаунта. У меня есть метод, который позволяет создавать учетные записи. Пользователь вводит идентификатор учетной записи, а идентификатор и мой список передаются другому методу, который ищет объекты, чтобы увидеть, существует ли эта учетная запись. Я хочу, чтобы он возвращал данные учетной записи обратно в метод подачи.Как вернуть объект из списка из метода в метод?

Я не могу понять, как вернуть объект из метода поиска.

Мой список выглядит следующим образом 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]; 

        } 



       } 


      } 
+2

у вас есть код? - показать это :-) - может быть так: public Account Select (List bank) {return bank [0]; } – Fruchtzwerg

+0

'public ObjectType FuncName (int something, List) { return list [0]; } ' –

+0

Привет, я включил свой код там :) – badgerbadger

ответ

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. 

Edit: В ответ на Ваш публикуемую код , вот как это должно выглядеть.

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)

+0

Эй, я отредактировал, чтобы добавить мой код там :) – badgerbadger

+0

Что значит« это не работает? », Есть ли компиляция ошибки или она не работает должным образом ? – Cyral

+0

Спасибо за вашу помощь, все! – badgerbadger