使用LINQ综合查询从c#数据表中获取不同的行
本文关键字:获取 数据表 综合 LINQ 查询 使用 | 更新日期: 2023-09-27 18:09:47
我有c#的数据表。只是想在这个数据表的列属性上获得不同的行列表。比如说,我有一个数据表,列属性为x,y &我在数据表中有200行,它们具有相同的x值。我想有独特的行仅基于x列属性与LINQ综合查询,我将其绑定到模型列表(我有)。
我有一个模型
public class Model
{
public Model(string x)
{
X= x;
}
public int X{ get; set; }
public string Y{ get; set; }
public decimal Z{ get; set; }
}
我被这个综合查询卡住了。它应该给出不同的列表,但不像预期的那样工作。
List<Model> modelList= new List<Model>();
modelList= (from item in response.AsEnumerable()
select new
{
description = DataTableOperationHelper.GetStringValue(item, "description")
}).Distinct().Select(m => new Model(m.description)).ToList();
- 其中DataTable response(有200行)和description是它的列属性之一。
给出'description'属性的一个列表,但不是DISTICT值。有什么是我需要考虑的吗?
这是因为这段代码
new
{
description = DataTableOperationHelper.GetStringValue(item, "description")
}
创建具有属性"description"的新对象,它通过引用而不是通过"description"的值进行比较。
试试这个:
ModelList = response.AsEnumerable()
.Select(item=>DataTableOperationHelper.GetStringValue(item, "description"))
.Distinct()
.Select(x => new ConsumablesViewModel(x.description))
.ToList();