Writing the condition x  0 My current condition is written as follows:

.Where(m =&gt; Math.Round((m.DateAndTime - DateTime.Now).TotalMinutes, 0) &lt;= 30 &amp;&amp; Math.Round((m.DateAndTime - DateTime.Now).TotalMinutes, 0) &gt; 0)


which basically says where the rounded value is less than or equal to 30 and the rounded value is greater than 0.  

Is there a neater way to write this than having

Math.Round((m.DateAndTime - DateTime.Now).TotalMinutes, 0)


twice in the same statement?

The full expression is:

List&lt;Meeting&gt; finalList = initialList.Where(m =&gt; Math.Round((m.DateAndTime - DateTime.Now).TotalMinutes, 0) &lt;= 30 &amp;&amp; Math.Round((m.DateAndTime - DateTime.Now).TotalMinutes, 0) &gt; 0).ToList();
If you need to store a result of a method you should just create a method for it.  

private bool IsInRange(DateTime dateTime, decimal min, decimal max)
{
    decimal totalMinutes = Math.Round((dateTime - DateTime.Now).TotalMinutes, 0);
    return totalMinutes &gt; min &amp;&amp; totalMinutes &lt;= max;
}  


now your expression looks like so  

.Where(m =&gt; IsInRange(m.DateAndTime, 0, 30));  


but the values 0 and 30 are still magic numbers which should be extracted to meaningful constants.  

The choosen method name is not the best like @Falco has correctly pointed out in his comment  


  UhhOhhh Horribly wrong named Function.... AreMinutesInRangeFromNow or something like this would be better - with your Method-Name I would expect no Magic happening with DateTime.Now - or pass the already substracted value, but don't hide this! 


so you should change it to a better name.  I don't like the name @Falco suggested either but couldn't come up with a different one. So it is up to you to choose one.