正在将列表与另一个包含某些数据的列表同步C#

正在将列表与另一个包含某些数据的列表同步C#,c#,list,sorting,C#,List,Sorting,使用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 示例代码: publ

使用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);    
    }    
}
public List lista=new List();
public List listb=新列表();
公共void fillListA(字符串mockstring)
{
对于(i=0;i
List orderedlistb=lista.Intersect(listb.ToList)()
这将迭代
lista
,创建
lista
中也出现在
listb
中的所有元素的新列表

通常,在执行此操作时,您需要确保正在比较的对象是引用相等的,或者您已经正确地覆盖了这些对象的
GetHashCode()
Equals(Object)


在这种情况下,因为您只使用字符串,所以不必担心这一点。

列表实际上只是字符串,Intersect修改lista还是返回列表?(例如,我可以执行
listb=lista.Intersect(listb.ToList())
?@JasonBrown它返回一个新列表。如果您愿意,您确实可以将该列表的结果分配给
列表B
List<string> orderedlistb = lista.Intersect(listb).ToList()