Why DistinctBy does not contain a definition?

zeze

I have a table of product specifications I do not want duplicate elements to be displayed when displaying product specifications. I did this, but the error is displayed. Where did I go wrong?

And displays this error: 'IEnumerable' does not contain a definition

 private static List<ProductPropertiesQueryModel> 
  MapProductProperties(List<ProductProperties> ProductProperties)
    {
       return ProductProperties
        .Select(x=>new ProductPropertiesQueryModel
        {
           ProductId =x.ProductId,
           Color =x.Color,
           Size=x.Size
        }).DistinctBy(r=>r.Color).ToList();                      
    }
Berkay Yaylacı

DistinctBy came with .NET 6 (New LINQ APIs section). Looks like you are using lower version. You can try one of these below.

1- You can write extension on your own,

public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> listItems, Func<T, TKey> groupingKey)
{
     return listItems.GroupBy(groupingKey).Select(x => x.First());
}

2- Upgrade your .NET version,

3- Use GroupBy() directly,

private static List<ProductPropertiesQueryModel> MapProductProperties(List<ProductProperties> ProductProperties)
{
       return ProductProperties
        .Select(x=>new ProductPropertiesQueryModel
        {
           ProductId =x.ProductId,
           Color =x.Color,
           Size=x.Size
        }).GroupBy(x => x.Color).Select(x => x.First()).ToList();                 
}

4- Use MoreLinq to have DistinctBy()

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Why CloudBlobClient does not contain a definition for GetBlockBlobReference?

Does not contain a definition for ListItemAllFields

IGrouping does not contain a definition for

does not contain a definition for 'DropDownList'

Does not contain definition for "HasDefaultValue"

'T' does not contain a definition

does not contain definition for "Method"

Does not contain a definition for "Add"

"***" Does not contain a definition for "pnlMenu"

Does not contain definition for Key

Why I have error " 'SQLiteCommand' does not contain a definition for 'Parameters' "?

'...DataType' does not contain a definition for 'Email'

Mock does not contain a definition for Setup

'Model' does not contain a definition for 'Object"

Task does not contain a definition for 'FirstOrDefault'

MemoryStream does not contain a definition for GetBuffer()

Dns does not contain a definition for `GetHostEntry'

'NpgsqlBinaryImporter' does not contain a definition for 'Cancel'

HttpClientHandler does not contain a definition for DefaultProxyCredentials

IHostBuilder does not contain a definition for ConfigureWebHostDefaults

Type does not contain a definition for 'GetProperties'

'ConfigurationBuilder' does not contain a definition for 'AddJsonFile'

JsonSerializer does not contain definition for Parse

AsEnumerable - Does not contain a definition for 'GetAwaiter'

HostingEnvironment does not contain a definition for IsHosted

'int?' does not contain a definition for 'TryFormat'

int does not contain a definition for ToArray

'MainActivity' does not contain a definition for 'SetVolumeControl'

IApplicationBuilder does not contain a definition for UseIdentity