我目前正在为自己的利益编写一个小型rolodex应用程序,并遇到了一些问题。
我写了一个用户定义的TabPage dll。用户在空白UD-TabPage上输入有关人员的信息。然后我从tabPage中删除信息并将其存储在我创建的Record
对象中。
用户可以选择创建许多这些tabPages。每次我将信息存储在Record对象中并将该对象放在List<Record>
。
当用户完成输入联系人并想要浏览所有选项卡时,我会在TabControl,A-Z上放置26个tabPages。他们将滚动到他们想要的tabPage,以便他们可以查看他们的联系人。
我遇到的问题是我不确定如何从List<record>
获取数据并将其放回tabControl,而无需创建额外的选项卡。例如。如果我有一个名叫“John Smith”和“Suzan Smith”的人,我希望能够滚动到S标签,John会先出现在那里,当我接下来时,Suzan会显示出来。
我已经将用户创建的标签按字母顺序排列。我只是不确定如何整齐地展示它们。
如果有人有一些想法或一些伪造的,那就太棒了!谢谢!
答案 0 :(得分:1)
我会使用词典)。例如:
List<record> cUngroupedRecords = new List<record>();
Dictionary<string, List<record>> cGroupedRecords = new Dictionary<string, List<record>();
foreach (record Record in cUngroupedRecords)
{
string sFirstChar = Record.LastName[0].ToString();
List<record> cRecords;
if (cGroupedRecords.ContainsKey(sFirstChar)) {
cRecords = cGroupedRecords[sFirstChar];
} else {
cRecords = new List<string>();
cGroupedRecords.Add(sFirstChar, cRecords);
}
cRecords.Add(Record);
}
然后你可以在cGroupedRecords中循环浏览每个组。