【发布时间】:2017-08-09 09:24:45
【问题描述】:
我有以下来自服务的数据。我必须在某些条件下对其进行过滤。
Train Manufacturer Model Type Name EnableQuery
Train2 RSS Model123 City "C-124" 1
Train2 ABC Iron-Bar Village "H-78" 0
Train2 AHAJ-Manufacturer Steel-123 City "HJ-TY" 0
Train2 ABC AmazeModel City "SD-12" 1
Train1 JK Platinum-123 City "HJK-2728" 1
当 "Train" 字段重复多次时,我的情况如下:
我必须选择 "Type" 和 "Name" 其中 Model 是 "Steel-123" ,是的,这是一个硬编码值如果找不到,请将其留空。我必须选择 "Manufacturer" ,"Model" 其中 "Model" 不等于 " Steel-123" ,将第一个值留空。
我必须添加 "EnableQuery" 值。
我的预期输出是:
Train Manufacturer Model Type Name EnableQuery
Train2 RSS Model123 City "HJ-TY" 2
Train1 JK Platinum-123 City "HJK-2728" 1
我从我无法控制的服务中获取原始输入。
public class Train
{
public string Train { get; set; }
public string Manufacturer { get; set; }
public string Model { get; set; }
public string Type { get; set; }
public string Name { get; set; }
}
List<Train> lstTr = //from service;
我尝试在 LINQ 中实现 Group by,但它不能解决我的目的,因为即使在 group by 中也有 3 种不同的条件。
如何在 C# 中选择并同时编辑具有相同列的行?有任何想法吗?
【问题讨论】: