c# - 如何从列表集合中选择唯一列表?

标签 c#

我有一个 IList 集合,我可以在其中看到重复的 List 集。我怎样才能选择一个唯一的列表?

IList 参数,

IList<OrderItemModifier> Modifiers; 

public class OrderItemModifier
{
    public int Id { get; set; }
    public int MenuAnswerId { get; set; }
    public int DatabaseId { get; set; }
    public int Plu { get; set; }
    public decimal Price { get; set; }
    public string SpecialInstructions { get; set; }
    public string ModifierDescription { get; set; }
    public int Quantity { get; set; }
}

现在有一个场景,Modifiers 有两个条目(如下所示),它们都是相同的,我想从中选择唯一的。

示例,修饰符 有两个条目,其中 [0] 和 [1] 完全相同,我只想选择唯一的一个(此处为 [0])。

[0] {OrderItemModifier} - Same values
[1] {OrderItemModifier} - Same values

我尝试过关注,但没有成功。

1.  
var uniqueModifiersList = newItem.Modifiers.Distinct().ToList();

2. 
HashSet<OrderItemModifier> uniqueModifiersList = new HashSet<OrderItemModifier>();
foreach (OrderItemModifier item in newItem.Modifiers)
{
    uniqueModifiersList.Add(item);
}

3.
HashSet<OrderItemModifier> uniqueModifiersList = new HashSet<OrderItemModifier>(newItem.Modifiers);

有什么想法吗?

最佳答案

var filteredList = Modifiers
  .GroupBy(modifier => modifier.Id)
  .Select(chunk => chunk.First());

关于c# - 如何从列表集合中选择唯一列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719368/

相关文章:

c# - ModelState.Clear 不工作

c# - 如何在循环中使用 linq?

c# - 使用 Request.UrlReferrer 保留 url 哈希值

c# - 有没有办法告诉路由我的默认操作名称等于 HTTP 操作动词?

c# - SelectlistItem selected = true 问题

c# - 是否可以通过网络访问Cacti RRD数据库

c# - OVER 子句中的 SQL ORDER BY 与 CLR 聚合不兼容?

c# - 通过 amazon ses 发送 html 模板

c# - TFS API - 有没有办法获取工作项类型的转换列表?

c# - 使用动态参数的方法重载决议