Вы просто используете 3-й столбец в качестве условия группировки?
var noDuplicatesList = lines
.GroupBy(l => l.PartNumber)
.Select(group => group.First())
foreach(var item in noDuplicatesList)
Console.WriteLine("{0} {1} {2} {3}",
item.Name,
item.PartDescription,
item.PartNumber,
item.Rotation
);
lines:
C12 0402 123456 90
C133 0402 123456 90
C9 0402 123456 90
C132 0603 abcd 0
C54 0603 abcd 0
R FID1 fiducial 0
R FID2 fiducial 0
R FID3 fiducial 0
R FID4 fiducial 0
lines.GroupBy(l => l.PartNumber):
{ C12 0402 123456 90, C133 0402 123456 90, C9 0402 123456 90}
{ C132 0603 abcd 0, C54 0603 abcd 0 }
{ R FID1 fiducial 0, R FID2 fiducial 0, R FID3 fiducial 0, R FID4 fiducial 0 }
lines.GroupBy(l => l.PartNumber).Select(group => group.First()):
C12 0402 123456 90
C132 0603 abcd 0
R FID1 fiducial 0