using System.Collections.Generic;
public static void Main()
string[][] inputs = new string[][]
new string[] {"Porsche", "Blue"},
new string[] {"Ferrari", "Red"},
new string[] {"Honda", "Green"},
new string[] {"Lambo", "Black"}
var lookup = inputs.Select((value, index) => new { brand = value[0], array = value })
.ToLookup(x => x.brand, x => x.array);
var order = new List<string>{"Ferrari", "Honda", "Porsche", "Lambo"};
var orderList = (from o in order
join l in lookup on o equals l.Key
Console.WriteLine(JsonConvert.SerializeObject(orderList));
foreach (var car in orderList)
Console.WriteLine(JsonConvert.SerializeObject(car));