Если вы под лямбда-синтаксисом подразумеваете настоящий LINQ-запрос, он выглядит так:
IEnumerable<int> j =
from cItem in c
join aitem in a on cItem equals aItem
select aItem;
Лямбда-выражение - это когда вы используете оператор =>, например:
IEnumerable<int> x = a.Select(y => y > 5);
То, что у вас есть с методом Union, на самом деле это не-LINQ способ сделать это, но я предполагаю, что вы подразумеваете способ сделать это без методов расширения. Вряд ли для этого есть одна строчка. Я сделал нечто подобное, используя словарь вчера. Вы могли бы сделать так:
Dictaionary<int, bool> match = new Dictaionary<int, bool>();
foreach (int i in c) match.Add(i, false);
foreach (int i in a) {
if (match.ContainsKey(i)) {
match[i] = true;
}
}
List<int> result = new List<int>();
foreach (KeyValuePair<int,bool> pair in match) {
if (pair.Value) result.Add(pair.Key);
}