Im trying to order the names(ListaSTR) according to the order of the integers in ListaINT. Checked other post with this solution but is now working for me. Im newbie. What am I missing?
using System.Collections.Generic;
using System;
using System.IO;
using System.Text;
using System.Linq;
namespace Simple
{
public static class Program
{
static void Main()
{
List<string> ListaSTR = new List<string>{"Alberto","Bruno","Carlos","Mario","Pepe","Rodrigo"};
List<int> ListaINT = new List<int>{4,6,1,8,2,5};
List<string> O_ListaSTR = OrderBySequence(ListaSTR, ListaINT, Func<string,string>);
Console.WriteLine(O_ListaSTR);
Console.ReadLine();
}
public static List<string> OrderBySequence<string, int>(this List<string> source, List<int> order, Func<string,int> idSelector)
{
var lookup = source.ToLookup(idSelector, t => t);
foreach (var id in order)
{
foreach (var t in lookup[id])
{
yield return t;
}
}
}
}
}