【发布时间】:2015-11-07 19:10:04
【问题描述】:
使用 winforms、Visual Studio 2013 社区、C#。
我需要同步两个列表的顺序。其中一个列表包含一个索引,另一个包含该索引中的选择。
示例: 清单 1 包含:
[0]Data0
[1]Data1
[2]Data2
[3]Data3
[4]Data4
[5]Data5
列表 2 包含一些数据,但顺序不同:
[0]Data3
[1]Data1
[2]Data5
我需要一些方法来匹配订单,以便列表 2 看起来像这样:
[0]Data1
[1]Data3
[2]Data5
示例代码:
public List<string> lista = new List<string>();
public List<string> listb = new List<string>();
public void fillListA(string mockstring)
{
for(i=0;i<750000;i++)//just to give Idea of the number of Strings in the List
{
lista.add(mockstring + i.ToString());//Fill List with data
}
}
OnClickEventHappens(string SelectedFromListA)//Mock event that fires if The user clicks on a string in ListA (As its displayed in a label on form1)
{
if(listb.Contains(SelectedFromListA))
{
listb.Remove(SelectedFromListA);
}
else
{
listb.Add(SelectedFromListA);
}
}
通过执行上述操作,由于用户可以随时单击 lista 中的任何“字符串”,因此 listb 最终完全没有组织。 (因为你可以“点击” lista[5],lista[1] 并且有足够的混淆顺序)
我不想每次都进行迭代它也发生了变化(Listb 显示在不同的选项卡上,因此我可以在显示之前对其进行排序,但最好将其保持在较小的部分中同步,而不是循环整个列表)
我需要保存它们的顺序是 Lista 添加“字符串”的顺序。 (我目前使用 Inserts 手动完成)。
【问题讨论】: