想法是按條件對項目進行分組,然後選擇每個組中的第一項。
var distinctItems = items.GroupBy(i => new{i.Name, i.Price})
.Select(g => g.First());
下面是完整的例子:
var items = new[]{
new Item{Id = 1, Name = "Bangles", Price = 100},
new Item{Id = 2, Name = "Saree", Price = 200},
new Item{Id = 3, Name = "Shoes", Price = 150},
new Item{Id = 4, Name = "Bangles", Price = 100},
new Item{Id = 5, Name = "Shoes", Price = 150}
};
var distinctItems = items.GroupBy(i => new{i.Name, i.Price})
.Select(g => g.First());
foreach (var item in distinctItems)
{
Console.WriteLine ("Name: {0} Price: {1}", item.Name, item.Price);
}
打印:
Name: Bangles Price: 100
Name: Saree Price: 200
Name: Shoes Price: 150
注意:考慮使用DistinctBy其使用更先進的算法通過一些標準來選擇不同的對象。
你知道那些實際上並不重複,因爲「手鐲」和「鞋子」你的兩個條目具有不同的條目標識的,對不對? –
是的項目id不同。但我的問題是重複沒有主鍵 – SrinivasNaidu
其數據庫表 – SrinivasNaidu