Możesz to zrobić, grupując elementy według 2 kolumn. (numer i nazwisko). Następnie uzyskaj dostęp do zgrupowanych danych. Możesz to zrobić jakoś tak:
var query =
from col in viewData
group col by new
{
col.name,
col.number,
} into groupedCol
select new viewData()
{
number = groupedCol.Key.number,
name = groupedCol.Key.name,
datetime = groupedCol.OrderBy( dateCol => dateCol.datetime).First()
};