Я не могу комментировать, как вы можете сделать это в C # / VB с таблицей данных, но если бы вы могли переместить все это в SQL, ваш запрос выглядел бы так:
declare @t table (ID int, Name varchar(10), LastName varchar(10), Age int)
insert into @t values (1, 'Bart' , 'Simpson', 10 )
insert into @t values (2, 'Lisa', 'Simpson' , 8 )
insert into @t values (3, 'Bart', 'Simpson' , 10 )
insert into @t values (4, 'Ned', 'Flanders' , 40 )
insert into @t values (5 , 'Bart', 'Simpson' , 10 )
select t.*,
(select min(ID) as ID
from @t t2
where t2.Name = t.Name
and t2.LastName = t.LastName
and t2.id < t.id)
from @t t
Здесь я определил таблицу для демонстрационных целей. Я полагаю, вы могли бы перевести это на LINQ.