Я написал следующий запрос linq, но я не получаю ожидаемого результата. Мой ожидаемый результат - это все подходящие записи bettween lst и list, а также все несоответствующие записи из списка .Linq to object Прямое внешнее соединение
Я хочу следующий результат
а, б, в, г, д, е
public class Com : IEqualityComparer<DuplicateData>
{
public bool Equals(DuplicateData x, DuplicateData y)
{
return x.address.Equals(y.address);
}
public int GetHashCode(DuplicateData obj)
{
return obj.address.GetHashCode();
}
}
static void Run()
{
List<string> lst = new List<string>();
lst.Add("a");
lst.Add("b");
lst.Add("c");
lst.Add("p");
List<DuplicateData> list = new List<DuplicateData>()
{
new DuplicateData{address="a"},
new DuplicateData{address="a"},
new DuplicateData{address="a"},
new DuplicateData{address="b"},
new DuplicateData{address="b"},
new DuplicateData{address="c"},
new DuplicateData{address="d"},
new DuplicateData{address="e"},
new DuplicateData{address="f"},
};
var dup = list.Distinct(new Com());
var RightJoin = from x in dup
join y in lst
on x.address equals y
into right
from z in right
select new
{
UniqueAddress = z,
};
}
Что такое 'Com' ?? –
Я использую пользовательский Comparar для удаления дубликата –