2010-10-13 2 views
1

У меня есть лямбда-выражения, которые в настоящее время выглядит следующим образом:Условное выражение Лямбды?

item => Reports.Add(item) 

Я хочу, чтобы изменить его таким образом, что это условно, и в основном проверяет, что Reports.Contains (пункт) возвращает ложь, то выполняет Reports.Add (элемент). Можно ли это сделать с помощью лямбда на одной линии?

Chris

ответ

8
Action<ItemType> action = item => { if(!Reports.Contains(item)) Reports.Add(item);}; 

Это должно сделать, но это зависит от того, как вы определяете 'одну линию', на самом деле.

+0

Он не сказал, что он должен быть красивым или очень читаемым :) –

+0

Спасибо, что сработало отлично! – Chris

5

альтернатива предложению Ани: сделать сообщение HashSet.

+0

Согласовано. Похоже, может потребоваться другая структура данных. –

0

Вы можете разделить несколько линий в своей лямбда с точкой с запятой.

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