使用winforms,Visual Studio 2013社区,C#。同步列表与另一个列表包含一些数据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具有“字符串”添加到它。 (我目前使用插入手工完成)。
该列表实际上只是字符串,是否相交修改lista或返回列表? (例如,我可以做'listb = lista.intersect(listb).ToList()'? –
@JasonBrown它返回一个新的列表。如果你愿意,你确实可以将结果分配给'listb'。 – TheInnerLight