using System;
using System.Collections.Generic;
using System.Linq;
class Product
{
public string Name { get; set; }
public string Price { get; set; }
}
public class Test
{
public static void Main()
{
List<Product> sourceProductList = new List<Product>
{
new Product { Name = "Cornflakes", Price = "1.99M"},
new Product { Name = "Cornflakes", Price = "1.89M"},
new Product { Name = "Rice Krispies", Price = "2.09M"},
new Product { Name = "Cornflakes", Price = "2.09M"},
};
var result = sourceProductList
.GroupBy(x => x.Name)
.Where(g => g.Select(x => x.Price).Distinct().Count() == 1)
.Select(g => g.First());
foreach (Product product in result)
{
Console.WriteLine("Name: {0}, Price: {1}", product.Name, product.Price);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpjbGFzcyBQcm9kdWN0CnsKICAgIHB1YmxpYyBzdHJpbmcgTmFtZSB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgc3RyaW5nIFByaWNlIHsgZ2V0OyBzZXQ7IH0KfQoKcHVibGljIGNsYXNzIFRlc3QKewogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIExpc3Q8UHJvZHVjdD4gc291cmNlUHJvZHVjdExpc3QgPSBuZXcgTGlzdDxQcm9kdWN0PgogICAgICAgIHsKICAgICAgICAgICAgbmV3IFByb2R1Y3QgeyBOYW1lID0gIkNvcm5mbGFrZXMiLCBQcmljZSA9ICIxLjk5TSJ9LAogICAgICAgICAgICBuZXcgUHJvZHVjdCB7IE5hbWUgPSAiQ29ybmZsYWtlcyIsIFByaWNlID0gIjEuODlNIn0sCiAgICAgICAgICAgIG5ldyBQcm9kdWN0IHsgTmFtZSA9ICJSaWNlIEtyaXNwaWVzIiwgUHJpY2UgPSAiMi4wOU0ifSwKICAgICAgICAgICAgbmV3IFByb2R1Y3QgeyBOYW1lID0gIkNvcm5mbGFrZXMiLCBQcmljZSA9ICIyLjA5TSJ9LAogICAgICAgIH07CgogICAgICAgIHZhciByZXN1bHQgPSBzb3VyY2VQcm9kdWN0TGlzdAogICAgICAgICAgICAuR3JvdXBCeSh4ID0+IHguTmFtZSkKICAgICAgICAgICAgLldoZXJlKGcgPT4gZy5TZWxlY3QoeCA9PiB4LlByaWNlKS5EaXN0aW5jdCgpLkNvdW50KCkgPT0gMSkKICAgICAgICAgICAgLlNlbGVjdChnID0+IGcuRmlyc3QoKSk7CgogICAgICAgIGZvcmVhY2ggKFByb2R1Y3QgcHJvZHVjdCBpbiByZXN1bHQpCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiTmFtZTogezB9LCBQcmljZTogezF9IiwgcHJvZHVjdC5OYW1lLCBwcm9kdWN0LlByaWNlKTsKICAgICAgICB9CiAgICB9Cn0=