foreach (var invitation in PendingContactList.CollectionContent)
{
if (!invitation.Contact.incoming)
{
contactInvitationsSent.Add(invitation);
}
}
PendingContactList是一个列表。如何将此代码片段转换为LINQ格式?
foreach (var invitation in PendingContactList.CollectionContent)
{
if (!invitation.Contact.incoming)
{
contactInvitationsSent.Add(invitation);
}
}
PendingContactList是一个列表。如何将此代码片段转换为LINQ格式?
类似的东西,如果contactInvitationsSent
是List<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);
@Sayse:谢谢,我纠正了错字 – 2014-09-05 06:55:15
这里假设了很多'contactInvitationSent'。如果它是一个集合呢? – nvoigt 2014-09-05 07:06:28
您可以使用以下,虽然它不保证给你任何性能提升。
contactInvitationSent.AddRange(PendingContactList.CollectionContent
.Where(i => !i.Contact.incoming);
为了您的信息,您还可以安装像ReSharper这样的插件。 是的,该工具的价格和性能并不总是补偿它提供的功能。然而,像这样的问题可以避免:-)
也有一些免费的替代品可用。例如电动工具。 http://visualstudiogallery.msdn.microsoft.com/3a96a4dc-ba9c-4589-92c5-640e07332afd
只是阅读更多关于resharper等,goodluck!
尝试类似:
contactInvitationsSent = PendingContactList.CollectionContent
.Where(x => x.Contact.incoming == false)
.Select(x => x).ToList();
LINQ的是真棒,非常简单的符号。
有一段时间,你可以改变这一行:'.Where(x => x.Contact.incoming == false)'by .'Where (x =>!x.Contact.incoming)'它会做同样的工作 – 2014-09-05 10:09:00
您必须使用以下语法。
var demo = (from n in PendingContactList.CollectionContent where n.incoming==false select n).ToList();
@Akhil Sivanandan如果答案有用,请点击'正确'并给'upvote',这样可以帮助其他人找到正确的解决方案。 – prog1011 2014-09-05 10:10:00
为什么要投票?证明理由。 – 2014-09-05 06:55:42
我可以问为什么你需要这样做? – Sayse 2014-09-05 06:56:20
var contactInvitationsSend = PendingContactList.CollectionContent.Where(x =>!x.Contact.incoming).ToList(); – IVAAAN123 2014-09-05 06:58:11