2015-06-24 2 views
0

Я написал несколько строк кода в C#, чтобы перебирать список, но я печатаю только в текстовом поле. код, который я написал:цикл через список в C#

//For instantiation 
Account account = new Account(0,"","", 0); 

//A list for class Account 
List<Account> listAccount = new List<Account>(); 

//Button for adding new Customer 
    private void button1_Click(object sender, EventArgs e) 
    { 
     account.CustomerID = int.Parse(customerIdTxt.Text); 
     account.CustomerFullName = customerNameTxt.Text; 
     account.CustomerAddress = customerAddrTxt.Text; 
     listAccount.Add(account); 

    } 

    //For printing the Customer's detailes in textbox 
    private void button6_Click(object sender, EventArgs e) 
    { 
     string showCustDetailes = ""; 
     for(int i=0;i<listAccount.Count;i++) 
     { 
      showCustDetailes+= 
       "Customer ID  : " + listAccount[i].CustomerID + Environment.NewLine + 
       "Customer Name  : " + listAccount[i].CustomerFullName + Environment.NewLine + 
       "Customer Address : " + listAccount[i].CustomerAddress + Environment.NewLine + 
      "---------------------------------------------------" + Environment.NewLine; 
     } 
     viewDetailesTxt.Text = showCustDetailes; 
    } 

кто может помочь мне, как я могу напечатать все клиент список

+0

Когда вы говорите, «Последний один» вы имеете в виду только линию «Customer Address», или вы имеете в виду только один полный идентификатор, имя и адресная строка? – CathalMF

+0

Также убедитесь, что ваш TextBox является многострочным текстовым полем, иначе он будет поддерживать только одну строку. –

+1

Вы используете только один экземпляр 'Account'. – cubrr

ответ

7

Там нет ничего плохого с кодом, который перебирает список (кроме не используя foreach()). Если вы действительно видите только одну учетную запись, проблема заключается в отображении: сделайте ваше текстовое поле больше или дайте ему полосы прокрутки.

Также вы редактируете один и тот же экземпляр account каждый раз, поэтому вы заполняете список несколькими ссылками на одну учетную запись. Вы должны использовать new Account, чтобы создать экземпляр нового для каждого «кнопки 1» нажмите:

private void button1_Click(object sender, EventArgs e) 
{ 
    Account account = new Account(0,"","", 0); 
    // ... 
    listAccount.Add(account); 
} 
+0

Большое вам спасибо. Это было очень хорошо. – user2982731

+0

Фактически код, который должен быть написан, заключается в следующем: «Аккаунт Accoount» в верхней части класса, а затем в одной из релевантных функций для создания экземпляра по коду: «account = new Account (0,« "," ", 0) ". – user2982731

+0

Нет, вам это не нужно. Если вы не используете учетную запись в другом месте, лучше указать ее как можно меньше: в методе 'button1_Click'. – CodeCaster

0
List<Account> listAccount = new List<Account>(); 

private void button1_Click(object sender, EventArgs e) 
{ 
    var account = new Account { 
     CustomerID = int.Parse(customerIdTxt.Text), 
     CustomerFullName = customerNameTxt.Text, 
     CustomerAddress = customerAddrTxt.Text 
    }; 
    listAccount.Add(account); 
} 

private void button6_Click(object sender, EventArgs e) 
{ 
    var sb = new StringBuilder(); 
    foreach(var account in listAccount) 
    { 
     sb.AppendFormat("Customer ID: {0}\nCustomer Name: {1}\nCustomer Address: {2}\n\n", account.CustomerID, account.CustomerFullName, account.CustomerAddress); 
    } 
    viewDetailesTxt.Text = sb.ToString(); 
} 
Смежные вопросы