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