gpt4 book ai didi

c# - 使用 Linq 比较两个通用列表

转载 作者:行者123 更新时间:2023-11-30 15:59:13 25 4
gpt4 key购买 nike

我正在尝试使用以下查询比较两个通用列表,只想插入修改后的值

所以我写了以下内容

public ActionResult GetModifiedRecords(IEnumerable<SalesOrder> oldSalesOrderList, List<SalesOrder> newSalesOrderList)
{
var result = (from oldSalesOrder in oldSalesOrderList
from newSalesOrder in newSalesOrderList
where
(oldSalesOrder.Value != newSalesOrder.Value)
select oldSalesOrder).Distinct();
IEnumerable<SalesOrder> modifiedSalesList = new List<SalesOrder>(result);
return modifiedSalesOrder;
}

但这似乎不起作用

最佳答案

注意:您的 Linq 查询的返回类型将是 IEnumerable 您不需要通过转换再次创建它;

你有没有试过这样的事情:

public IEnumerable<SalesOrder> GetModifiedRecords(IEnumerable<SalesOrder> oldSalesOrderList, List<SalesOrder> newSalesOrderList)
{
return oldSalesOrderList.Where((x,i)=>newSalesOrderList[i].Value !=x.Value);
}

只有当两个列表的顺序相同时,上面的代码才有效,否则你可以尝试这样的事情(假设 OrderId 将是一个唯一字段):

return oldSalesOrderList.Where(x =>
newSalesOrderList.Any(y => y.OrderId == x.OrderId && Y.Value !=x.Value));

关于c# - 使用 Linq 比较两个通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com