我假設在字符(@)處的廣告是將行分隔成列的分隔符。如果你需要的部分總是在同一列中,你就知道他們的索引。因此,通過在隔板分割線開始走的列你有興趣:
string[] parts = line.Split('@');
textBox_1 = part[0]; // 111033
textBox_2 = part[4]; // 21
textbox_3 = part[8]; // 37
...
做這些線代表什麼呢?既然我不知道,我只是以一個人的地址爲例(這裏可能不是這種情況,但這不重要)。
創建一個可以存儲對象的類。 (爲了簡單起見,我沒有包括有效性測試)。
public class Address
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string City { get; set; }
public static Addess FromLine(string line)
{
var a = new Address();
string[] parts = line.Split('@');
a.ID = Int32.Parse(parts[0]);
a.FirstName = parts[3];
a.LastName = parts[4];
a.City = parts[8];
return a;
}
public override string ToString()
{
return String.Format("{0} {1}, {3}", FirstName, LastName, City);
}
}
現在您可以將這些對象添加到組合框中。它們將根據ToString
方法自動顯示。你可以用
Address a = (Address)myComboBox.SelectedItem;
獲得所選擇的項目可以填補這樣
var items = new List<Address>();
while (!sr.EndOfStream) {
string line = sr.ReadLine();
if (line != null && line.Contains("@")) {
Address a = Address.FromLine(line);
items.Add(a);
}
}
myComboBox.DataSource = items;
組合框行總是這樣的格式? – JaredPar
是的,我得到了大約3000行SameFormat – DaRkS