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

时间:2014-04-28 17:28:20

标签: c# asp.net linq

我有一个C#DataTable。我正在将数据检索到DataTable。之后,我尝试在创建List<MyObject>

的同时进行DISTINCT条目

以下是我追逐的代码:

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)?

1 个答案:

答案 0 :(得分:0)

看看这个已回答的问题(LinQ distinct with custom comparer leaves duplicates)。

基本上,您为类型创建了一个相等比较器,它允许您决定使对象不同的原因。