【发布时间】:2018-04-18 05:45:50
【问题描述】:
我有一个作为模型的属性列表
public class AnswerList {
public int ID { get; set; }
public int? Schedule_ID { get; set; }
public int? SubItemID { get; set; }
public string SubItemName { get; set; }
public string ItemName { get; set; }
public string Answer { get; set; }
public string Remarks { get; set; }
public string Remarks_Flag { get; set; }
public string Lattitude { get; set; }
public string Longitude { get; set; }
public DateTime? Load_Date { get; set; }
}
我正在从此列表中获取不同子项的列表
List<string> sub_item_list = AnswerList.Select(x => x.SubItemName).Distinct().ToList();
现在我想要以下类的不同格式的数据
public class SubItemList {
public string ItemName { get; set; }
public string SubItemName { get; set; }
}
我的要求是获得具有各自项目名称的不同子项目,子项目应该是不同的,但项目名称可以重复,因为一个项目可以包含多个子项目
Distinct 不适用于多个值,所以我尝试了
List<SubItemList> SI_List =
AnswerList.GroupBy(d => d.SubItemID)
.Select(x =>
new SubItemList
{
ItemName = x.Select(a => a.ItemName).First(),
SubItemName = x.Select(a => a.SubItemName).First()
}).Distinct().ToList();
这样我得到了我想要的,但我不认为这是一个更可取的方法, 另一个 Linq 表达式中的 Linq 表达式
如何用一个简单的 Linq 表达式得到它?
我正在使用 ASP.Net Core 2.0
【问题讨论】: