使用LINQ DISTINCT创建数据表—多列不包括单列

本文关键字:不包括 单列 数据表 LINQ DISTINCT 创建 使用 | 更新日期: 2023-09-27 18:00:29

我有一个C#DataTable。我正在将数据检索到DataTable中。在那之后,我试图在创建List<MyObject>的同时区分条目。

这是我正在追逐的代码:

viewModelList = (from item in response.AsEnumerable()
                 select new
                 {
                     description = DataTableOperationHelper.GetStringValue(item, "description"),
                     unitCost = DataTableOperationHelper.GetDecimalValue(item, "unitcost"),
                     defaultChargeable = DataTableOperationHelper.GetBoolValue(item, "defaultChargeable"),
                     contractId = DataTableOperationHelper.GetIntValue(item, "contractID"),
                     consumableid = DataTableOperationHelper.GetIntValue(item, "consumableid")
                 })
                 .Distinct()
                 .Select(x => new ConsumablesViewModel(
                     x.description,
                     x.unitCost,
                     x.defaultChargeable,
                     x.contractId,
                     x.consumableid)
                 )
                 .ToList();

我只想在执行DISTINCT时排除一列(consumableid)。如何区分除单个值(consumableid)之外的其余数据?

使用LINQ DISTINCT创建数据表—多列不包括单列

看看这个已回答的问题(带有自定义比较器的LinQ distinct会留下重复项)。

基本上,您可以为您的类型创建一个相等比较器,使您能够决定是什么使对象不同。