title: Resharper: Possible Multiple Enumeration of IEnumerable
body: <p>I'm using the new Resharper version 6. In several places in my code it has underlined some text and warned me that there may be a <em>Possible multiple enumeration of IEnumerable</em>.</p>
  
  <p>I understand what this means, and have taken the advice where appropriate, but in some cases I'm not sure it's actually a big deal.</p>
  
  <p>Like in the following code:</p>
  
  <pre><code>var properties = Context.ObjectStateManager.GetObjectStateEntry(this).GetModifiedProperties();
  if (properties.Contains("Property1") || properties.Contains("Property2") || properties.Contains("Property3")) {
      ...
  }
  </code></pre>
  
  <p>It's underlining each mention of <code>properties</code> on the second line, warning that I am enumerating over this IEnumerable multiple times.</p>
  
  <p>If I add <code>.ToList()</code> to the end of line 1 (turning <code>properties</code> from a <code>IEnumerable&lt;string&gt;</code> to a <code>List&lt;string&gt;</code>), the warnings go away.</p>
  
  <p>But surely, if I convert it to a List, then it will enumerate over the entire IEnumerable to build the List in the first place, and then enumerate over the List as required to find the properties (i.e. 1 full enumeration, and 3 partial enumerations). Whereas in my original code, it is only doing the 3 partial enumerations.</p>
  
  <p>Am I wrong? What is the best method here?</p>