2015-04-06 85 views
1

我現在所擁有的是兩個列表框,分別是lstItem和lstQty,我希望將這兩個值保存到單個文本文件中。如何將多個列表框值保存到單個文本文件中C#

lstItem | lstQty 
Chicken |  3 
Fish  |  2 
Lamb  |  1 

我想保存到文本文件這樣這個值:

Chicken | 3 
Fish | 2 
Lamb | 1 

相反的:

Chicken 
Fish 
Lamb 
3 
2 
1 

這是我的代碼:

string receiptFile = @"D:\VisualStudio2012\SalesDetails.txt"; 

StreamWriter file2 = new StreamWriter(receiptFile, true); 

List<string> totalSales = new List<string>(); 
foreach (object item in lboItem.Items) 
{ 
    totalSales.Add(item as string); 
    file2.WriteLine(item); 
} 
foreach (object item2 in lboQty.Items) 
{ 
    totalSales.Add(item2 as string); 
    file2.WriteLine(item2); 
} 
file2.Close(); 

我知道爲什麼在我所提到的文本文件中顯示以上所述。這是因爲我不知道如何讓它像我想要的那樣。提前感謝任何能解決這個問題的人。

+0

你需要的不是一個'foreach',而是一個for循環。循環遍歷一個單獨的'for(var i = 0; i Nilesh 2015-04-06 11:46:18

+0

我不能插入'length'列表框名稱後。你能通過編碼來回答嗎?謝謝@Nilesh – 2015-04-06 11:51:14

回答

1

嗯,而不是你的兩個循環,你只需要一個,在這一個循環期間,你只需要連接來自兩個列表框的值並將它們寫入文件。

事情是這樣的:

int itemsCount = Math.Min(lboItem.Items.Count, lboQty.Items.Count); 
for (int i = 0; i < itemsCount; i++) 
{ 
    string item = ""; 
    if (i < lboItem.Items.Count) 
     item = lboItem.Items[i].ToString(); 

    item += " | "; 

    if (i < lboQty.Items.Count) 
     item += lboQty.Items[i].ToString(); 

    totalSales.Add(item); 
    file2.WriteLine(item); 
} 

我不知道你爲什麼在這裏需要totalSales名單 - 但它是由你的邏輯。

另請注意 - 這裏檢查的情況下,當列表框的大小不相等。如果你的列表框大小guarantied等於 - 這種檢查是多餘的,你可以簡化這個代碼片段

int itemsCount = lboItem.Items.Count; 
for (int i = 0; i < itemsCount; i++) 
{ 
    string item = string.Format("{0} | {1}", lboItem.Items[i], lboQty.Items[i]); 
    totalSales.Add(item); 
    file2.WriteLine(item); 
} 
+0

非常感謝!這太完美了。謝謝@Andy Korneyev – 2015-04-06 12:01:47

1

如果兩個列表框總是有相同數量的項目,也許這可以幫助你:

string receiptFile = @"D:\VisualStudio2012\SalesDetails.txt"; 
StreamWriter file2 = new StreamWriter(receiptFile, true); 
for(int i=0; i < lboItem.Items.Count; i++) 
{ 
    file2.WriteLine(string.Format("{0} | {1}", lboItem.Items[i].ToString(), lboQty.Items[i].ToString())); 
} 
file2.Close(); 

我沒有意識到totalSales的目的。如果你需要它,你可以將它添加到for循環中。

相關問題