C# 扫描对象列表并比较对象值
例如,我有3个列表(或更多): 清单1: [{门店:“门店1”,商品:“门店1”,价格:10},{门店:“门店1”,商品:“门店2”,价格:5},{门店:“门店1”,商品:“门店4”,价格:100},{门店:“门店1”,商品:“门店10”,价格:10}] 清单2: [{商店:“商店2”,物品:“物品1”,价格:15},{商店:“商店2”,物品:“物品2”,价格:10},{商店:“商店2”,物品:“物品10”,价格:110}] 清单3: [{门店:“门店3”、商品:“门店1”、价格:5}、{门店:“门店3”、商品:“门店2”、价格:10}、{门店:“门店3”、商品:“门店10”、价格:100}、{门店:“门店3”、商品:“门店100”、价格:1}] 正如你所见,这就像3家商店,有不同的商品和价格。并不是所有的商店都有所有的商品,所以我想通过比较列表,找到包含“item1”的物品,然后选择更便宜的价格来制作一个列表。并逐一比较列表(列表1与列表2、列表1与列表3、列表2与1、列表2与3)。我说得通吗 任何答复都将不胜感激 我试过一些东西,但我就是不明白(这适用于两家商店):C# 扫描对象列表并比较对象值,c#,list,object,C#,List,Object,例如,我有3个列表(或更多): 清单1: [{门店:“门店1”,商品:“门店1”,价格:10},{门店:“门店1”,商品:“门店2”,价格:5},{门店:“门店1”,商品:“门店4”,价格:100},{门店:“门店1”,商品:“门店10”,价格:10}] 清单2: [{商店:“商店2”,物品:“物品1”,价格:15},{商店:“商店2”,物品:“物品2”,价格:10},{商店:“商店2”,物品:“物品10”,价格:110}] 清单3: [{门店:“门店3”、商品:“门店1”、价格:5}、{门店:
您可以合并列表,然后按项目分组,然后选择按价格订购每个组,并从每个组中选择第一个(最便宜的)
var result = List1.Concat(List2).Concat(List3).GroupBy(x => x.item)
.Select(g => g.OrderBy(x=> x.price).First()).ToList();
你已经试过什么了?你在哪里卡住了?我会把它加到问题上
var result = List1.Concat(List2).Concat(List3).GroupBy(x => x.item)
.Select(g => g.OrderBy(x=> x.price).First()).ToList();