使用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会留下重复项)。
基本上,您可以为您的类型创建一个相等比较器,使您能够决定是什么使对象不同。