检查C#列表中是否有相同的项目。

15 浏览
0 Comments

检查C#列表中是否有相同的项目。

我想检查一个列表中基于列表中存在的一个项目,是否有一些项目是相同的。

List productDTOs;

ProductDetailDTO类如下所示 -

public class ProductDetailDTO
{
    public int ProductId { get; set; }
    public string Name { get; set; }
    public string Category { get; set; }
    public byte[] Image { get; set; }
    public string Description { get; set; }
    public string Brand { get; set; }
    public string GUID { get; set; }
    public string VariantName { get; set; }
    public string VariantValue { get; set; }
    public decimal Price { get; set; }
}

现在,我想将所有具有相同GUID的VariantName和VariantValue一起显示。

我如何实现这一点?

0
0 Comments

问题的出现原因是想要在一个C#列表中检查是否存在相同的项目。解决方法是使用GroupBy函数将具有相同GUID的项目分组在一起。下面是具体的解决方法:

首先,可以尝试使用以下代码:

productDTOs.GroupBy(x => x.GUID,(key,item) => new
{
    VariantName= item.Select(y => y.VariantName),
    VariantValue = item.Select(y => y.VariantValue),
}).ToList()

此代码将根据GUID将项目分组,并创建一个新的对象,其中VariantName属性包含具有相同GUID的项目的VariantName值列表,VariantValue属性包含具有相同GUID的项目的VariantValue值列表。

另外,还可以对GUID进行解析,因为它们当前以字符串的形式存储在DTO中,可能存在未捕获的重复项。

如果上述方法不起作用,可以继续编辑并尝试以下代码:

How can I display all my variants with the same GUIDs together?

这将根据相同的GUID将变体显示在一起。

如果还不起作用,可以再次编辑并尝试以下代码:

No it didn't. What I exactly want is to display the variants with the same GUIDs together.

这将确保将具有相同GUID的变体显示在一起。

通过以上解决方法,可以实现在C#列表中检查是否存在相同项目,并将具有相同GUID的项目分组在一起。

0