using System; using System.Linq; using System.Collections.Generic; public class Test { public static void Main() { var List1=new[] {"123456", "432978", "321675", "321675" }; var List2 = new[] { "7674543897", "1234568897", "8899776644" }; var match = from str1 in List1 join str2 in List2 on str1 equals (str2.Length < 6 ? str2 : str2.Substring(0, 6)) select str2; foreach(string s2 in match)Console.WriteLine(s2); } }