List<BasicInfo> BasicInfos = new List<BasicInfo>();
BasicInfos.Add(new BasicInfo() { Id = 1, Name = "John" });
BasicInfos.Add(new BasicInfo() { Id = 2, Name = "John" });
BasicInfos.Add(new BasicInfo() { Id = 3, Name = "Sam" });
BasicInfos.Add(new BasicInfo() { Id = 4, Name = "Sam" });
BasicInfos.Add(new BasicInfo() { Id = 5, Name = "Igor" });
BasicInfos.Add(new BasicInfo() { Id = 6, Name = "joei" });
var usersWithSameName = BasicInfos.GroupBy(x => x.Name)
.Where(x => x.Count() > 1)
.Select(x => x.Single(y => y.Id == x.Min(z => z.Id)));
Ad aynıysa, yalnızca en düşük ID olan nesneyi seçin.
Bu nedenle, yinelenen ve varsa bir kopya daha sonra en küçük id ile kaydı döndürür. Yukarıdaki örnek, 2 öğeyi döndürür ve yinelenen adın bulunamayacağı öğeleri dikkate almaz. Bu doğru değilse, bu sürümü nerede kullanmadan kullanın. Böyle
var usersWithSameName = BasicInfos.GroupBy(x => x.Name)
.Select(x => x.Single(y => y.Id == x.Min(z => z.Id)));
niçin downvote emin değilim. Belki de şartı anlamadım? – Igor