Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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/2/joomla/2.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#_.net_Sorting - Fatal编程技术网

C# 按与给定数组相同的顺序对数组进行排序

C# 按与给定数组相同的顺序对数组进行排序,c#,.net,sorting,C#,.net,Sorting,我有一个以任意顺序指定的唯一值数组;我有另一个数组,其中的值与第一个数组的值几乎相同,但可能缺少一些值,并且它们的排序方式完全不同。 如何按与第一个数组相同的顺序排列第二个数组中的值 UPD例如: 数组1:4,8,2,5,9,3 数组2:5,8,4,2 所需结果:4、8、2、5您可以检查数组1中的每个元素是否存在于数组2中,并按顺序获取它们: int[] array1 = new int[] { 4, 8, 2, 5, 9, 3 }; int[] array2 = new int[] { 5,

我有一个以任意顺序指定的唯一值数组;我有另一个数组,其中的值与第一个数组的值几乎相同,但可能缺少一些值,并且它们的排序方式完全不同。
如何按与第一个数组相同的顺序排列第二个数组中的值

UPD例如:

数组1:4,8,2,5,9,3
数组2:5,8,4,2

所需结果:4、8、2、5

您可以检查数组1中的每个元素是否存在于数组2中,并按顺序获取它们:

int[] array1 = new int[] { 4, 8, 2, 5, 9, 3 };
int[] array2 = new int[] { 5, 8, 4, 2 };


array2 = array1.Intersect(array2).ToArray();
  var result = array1.Where(a => array2.Contains(a));

OK,让我们考虑逻辑而不是代码。


如果我们考虑第二个数组是第一个数组的子集的情况,我们可以做一件事。让我们创建一个类型为Boolean的数组,大小为first array。考虑第二个数组的每个元素,并通过第一个数组遍历。如果找到匹配项,则将相应的布尔索引设为TRUE。最后,您将得到一个真与假组合的布尔数组。然后,您可以使用布尔值TRUE打印第一个数组的所有索引。

显示两个数组的示例数据以及第二个数组的结果数组。第二个数组的最大大小是多少?@jdigital,它可以很大。@user626528这个答案对于大数组更有效,因为它用于第二个数组