如何将此代码片段转换为 LINQ 格式

本文关键字:转换 LINQ 格式 片段 代码 | 更新日期: 2023-09-27 18:20:48

 foreach (var invitation in PendingContactList.CollectionContent)
            {
                if (!invitation.Contact.incoming)
                {
                    contactInvitationsSent.Add(invitation);
                }
            }

待定联系人列表是一个列表。

如何将此代码片段转换为 LINQ 格式

如果contactInvitationsSentList<T>,则类似:

  contactInvitationsSent.AddRange(
    PendingContactList.CollectionContent.Where(item => !item.Contact.incoming)
  );

如果contactInvitationsSent不是List<T>,我们也没有AddRange方法必须使用Add,在这种情况下,Linq 似乎没有什么帮助:

  foreach(var invitation in PendingContactList.CollectionContent
                     .Where(item => !item.Contact.incoming)) 
    contactInvitationsSent.Add(invitation);

您可以使用以下内容,尽管不能保证它能为您提供任何性能提升。

contactInvitationSent.AddRange(PendingContactList.CollectionContent
                                                .Where(i => !i.Contact.incoming);

仅供您参考,您还可以安装ReSharper等插件。是的,该工具的价格和性能并不总是能弥补它提供的功能。但是,像这样的问题可以避免:-(

还有一些免费的替代品可用。例如电动工具。http://visualstudiogallery.msdn.microsoft.com/3a96a4dc-ba9c-4589-92c5-640e07332afd

只需阅读更多关于锐化器等的信息,祝你好运!

尝试类似以下内容:

contactInvitationsSent = PendingContactList.CollectionContent
                                    .Where(x => x.Contact.incoming == false)
                                    .Select(x => x).ToList();

Linq 是很棒的,非常简单的符号。

您必须使用以下语法。

var demo = (from n in PendingContactList.CollectionContent where n.incoming==false select n).ToList();