using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
List<string> foo = new List<string>() {
"1", "12", "123", "1234", "12345"
List<string> bar = new List<string>() {
"123", "a", "b", "1", "12"
var foos = foo.Select((f, i) => new { idx = i, val = f });
var bars = bar.Select((b, i) => new { idx = i, val = b });
var indexes = foos.Join(bars,
(f, b) => new { idxA = f.idx, idxB = b.idx });
foreach (var idxs in indexes) {
Console.WriteLine("idxA: {0} idxB: {1}", idxs.idxA, idxs.idxB);
public void Do() { Console.WriteLine("Do"); }