2014-09-05 5 views
0
foreach (var invitation in PendingContactList.CollectionContent) 
      { 
       if (!invitation.Contact.incoming) 
       { 
        contactInvitationsSent.Add(invitation); 
       } 
      } 

PendingContactList - это список.Как преобразовать этот фрагмент кода в формат LINQ?

+0

Зачем голосовать? Обосновать причину. –

+0

Могу ли я спросить, зачем вам это нужно? – Sayse

+1

var contactInvitationsSend = PendingContactList.CollectionContent.Where (x =>! X.Contact.incoming) .ToList(); – IVAAAN123

ответ

3

Нечто подобное, если 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); 
+0

@Sayse: Спасибо, я исправил опечатку –

+0

Это предполагает много о 'contactInvitationSent'. Что, если это была коллекция? – nvoigt

2

Вы можете использовать следующее, хотя оно не гарантировано, чтобы дать вам повышение производительности ,

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

Это предполагает много о 'contactInvitationSent'. Что, если это была коллекция? – nvoigt

+0

@nvoigt - Единственная информация, которую мы должны продолжить, это «pendingContactList» - это список. Конечно, есть некоторые догадки здесь, но большинство вопросов stackoverflow действительно включают такую ​​работу в наши дни – Sayse

0

Для получения информации вы также можете установить плагины, такие как ReSharper. И да, цена и производительность инструмента просто не всегда компенсируют предоставляемые функции. Тем не менее, таких вопросов можно избежать :-)

Есть также бесплатная альтернатива. Например, электроинструменты. http://visualstudiogallery.msdn.microsoft.com/3a96a4dc-ba9c-4589-92c5-640e07332afd

Просто прочитайте больше о resharper и т. Д., Goodluck!

0

попробовать что-то вроде:

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

Linq является удивительным и очень простое обозначение.

+0

, пока вы можете изменить эту строку: '.Where (x => x.Contact.incoming == false)' этим '.Where (x =>! x.Contact.incoming) 'он сделает то же самое –

0

Вы должны использовать следующий синтаксис.

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

+0

@Akhil Sivanandan Если ответ полезен, пожалуйста, нажмите« правильно »и дайте« upvote », чтобы он помог другим узнать правильное решение. – prog1011

Смежные вопросы