我有一个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
)?
答案 0 :(得分:0)
看看这个已回答的问题(LinQ distinct with custom comparer leaves duplicates)。
基本上,您为类型创建了一个相等比较器,它允许您决定使对象不同的原因。