Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在另一个列表中按值匹配对对象列表进行排序_C#_List_Linq_Sorting - Fatal编程技术网

C# 在另一个列表中按值匹配对对象列表进行排序

C# 在另一个列表中按值匹配对对象列表进行排序,c#,list,linq,sorting,C#,List,Linq,Sorting,我有两个(几乎总是)相同的列表,由不同类型的对象组成,但具有一些共同的属性(并且总是唯一的值): 我需要像这样的东西 list2.OrderBy(x => Where(list1.prop1 == list2.prop2)) 我希望这足够清楚。使用: 请注意,如果没有找到与谓词匹配的项,您将返回-1,因此所有这些项都将堆积在顶部(当然,您可以编写代码完全忽略它们,或者将它们堆积在底部,或者其他任何地方) list1: 0, "FMS", prop2, prop3; 1, "KFF",

我有两个(几乎总是)相同的列表,由不同类型的对象组成,但具有一些共同的属性(并且总是唯一的值):

我需要像这样的东西

list2.OrderBy(x => Where(list1.prop1 == list2.prop2))
我希望这足够清楚。

使用:

请注意,如果没有找到与谓词匹配的项,您将返回-1,因此所有这些项都将堆积在顶部(当然,您可以编写代码完全忽略它们,或者将它们堆积在底部,或者其他任何地方)

list1:

0, "FMS", prop2, prop3; 
1, "KFF", prop2, prop3; 
2, "FOA", prop2, prop3;
3, "RDA", prop2, prop3;
4, "KFP", prop2, prop3; 

list2:

Before:
991, prop1, "RDA", prop2, prop3, etc; 
992, prop1, "FMS", prop3, prop4, etc;
993, prop1, "KFF", prop3, prop4, etc;
994, prop1, "KFP", prop3, prop4, etc;
995, prop1, "FOA", prop3, prop4, etc;

After:
992, prop1, "FMS", prop3, prop4, etc;
993, prop1, "KFF", prop3, prop4, etc;
995, prop1, "FOA", prop3, prop4, etc;
991, prop1, "RDA", prop3, prop4, etc;
994, prop1, "KFP", prop3, prop4, etc;
list2.OrderBy(x => Where(list1.prop1 == list2.prop2))
list2.OrderBy(x => list1.FindIndex(y => y.prop1 == x.prop2));