检查C#列表中是否有相同的项目。
检查C#列表中是否有相同的项目。
我想检查一个列表中基于列表中存在的一个项目,是否有一些项目是相同的。
ListproductDTOs;
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一起显示。
我如何实现这一点?
问题的出现原因是想要在一个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的项目分组在一起。