Возьмите этот метод f.e .:Выберите результат, где положение
public static Function Parse(string codeAndData)
{
return (from factory in factories
where factory.Parse(codeAndData) != null
select factory.Parse(codeAndData)).FirstOrDefault();
}
Как вы можете видеть, factory.Parse(codeAndData)
вызывается дважды, что плохая практика. Поэтому мы могли бы написать это следующим образом:
public static Function Parse(string codeAndData)
{
Function function = null;
return (from factory in factories
where (function = factory.Parse(codeAndData)) != null
select function).FirstOrDefault();
}
Но вышеизложенное не кажется мне очень изящным. Есть ли лучшая альтернатива LINQ?
сделать выбор перед где – csharpwinphonexaml
Вашего вторым вариантом является _bad_. Вам следует избегать побочных эффектов. Если вы решили распараллелить эту операцию, вы можете столкнуться с беспорядком на руках. – JLRishe
@JLRishe это было плохо, вот в чем причина моего вопроса :) –