LINQ Distinct() किसी ऑब्जेक्ट के विशिष्ट गुण के अनुसार
नमस्ते, सहकर्मियों! मैं C# और LINQ में नया हूँ, और मुझे एक समस्या का सामना करना पड़ा।
मेरे पास `Product` क्लास के ऑब्जेक्ट्स की एक सूची है:
```csharp
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
```
मैं सूची को डेटा से भर रहा हूँ, और इसमें `Name` फ़ील्ड के अनुसार डुप्लिकेट हो सकते हैं। उदाहरण के लिए:
```csharp
var products = new List
{
new Product { Id = 1, Name = "Apple", Price = 100 },
new Product { Id = 2, Name = "Banana", Price = 50 },
new Product { Id = 3, Name = "Apple", Price = 120 },
new Product { Id = 4, Name = "Cherry", Price = 200 }
};
```
मैं केवल `Name` गुण के अनुसार अद्वितीय उत्पादों की सूची प्राप्त करना चाहता हूँ, ताकि केवल "Apple", "Banana", "Cherry" रहें (इससे कोई फर्क नहीं पड़ता कि Apple का कौन सा डुप्लिकेट रहेगा - पहला या आखिरी)।
`Distinct()` मेथड डिफ़ॉल्ट रूप से ऑब्जेक्ट्स की तुलना रेफरेंस से करता है, न कि गुण से। मैंने `Equals` और `GetHashCode` को ओवरराइड करने की कोशिश की,