区块链技术博客
www.b2bchain.cn

根据唯一ID将2个列表与linq合并以避免重复 – c#程序员分享

本文介绍了根据唯一ID将2个列表与linq合并以避免重复 – c#程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我有两个产品列表:products和extraProducts
我的目标是合并2个列表,但避免仅基于ID重复。

这是我的最佳尝试:

List<Product> allProductsWithNoDuplicates = new List<Product>();  allProductsWithNoDuplicates.AddRange(products.Where(p => extraProducts.Select(ep => ep.Id).Contains(p.Id)).ToList()); 

但是,它不起作用,因为它必须位于“不包含”的位置。

参考方案

首先,创建一个IComparer类,

public class ProductComparer: IComparer  {   int IComparer.Compare(object a, object b)  {     if(a.Id == b.Id)       return 0;     else      return 1;  } } 

然后,在连接两个列表之后使用Distinct()。

allProductsWithNoDuplicates =   products.Concat(extraProducts).Distinct(new ProductComparer()).ToList(); 

LINQ RemoveAll代替循环 – c#

我有两个for循环,用于从列表中删除项目。我正在为这些循环寻找等效的LINQ语句for (Int32 i = points.Count – 1; i >= 0; i–) { for (Int32 j = touchingRects.Count – 1; j >= 0; j–) { if (touchingRects[j].HitTest(po…

Linq Any()的哪种使用效率更高? – c#

我有一个Linq查询,如下所示:return this._alarmObjectAlarmViolationList .Where(row => row.ObjectId == subId) .Where(row => row.AlarmInternalId == "WECO #1 (StdDev > UCL)") .W…

Java中的OrderByDecending(LINQ)等效项 – java

嗨,我是一名使用Java的C#开发人员。问题很简单:我如何才能将下面的c#代码写入Java并仍能正常工作:myCoffeeList.OrderByDescending(x => x.Name?.ToLower()?.Trim() == sender.Text.ToLower()?.Trim())); 我的sender.Text基本上是一个文本框。文本的…

LINQ to SQL中的“无法识别的表达式节点数组索引linq”异常 – c#

这是我的LINQ,其中我将DateTime类型的字段与当前日期进行了比较- var srs = (from s in dcDistrict.ScheduledReportStatus where s.ReportConfigId.Equals(ConfigId) && s.Status.HasValue && s.Status…

.Net LINQ-使用其他字典过滤字典 – c#

我有两个相同类型的字典,A和B。Dictionary<string, IEnumerable<object>> 我使用对象来表示具有属性“ Id”的复杂类型。我正在寻找A中具有B中存在的对象(使用Id)但在另一个键下的所有项目。基本上是要判断对象是否已移动键。 A是新字典,B是旧字典。有没有使用LINQ完成此操作的合理方法?我希望结果…

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 根据唯一ID将2个列表与linq合并以避免重复 – c#程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们