Se non sapete cosa sono le query CAML è mooolto probabile che non avete ancora avuto a che fare con Sharepoint.
  CAML è un linguaggio di query basato su XML, utile per ottenere ListItem da una lista Sharepoint.
  Solitamente per specificare una query CAML facciamo così:
  SPQuery qry = new SPQuery();
string camlquery = “<OrderBy><FieldRef Name='Country' /></OrderBy><Where><Eq><FieldRef Name='LastName' /><Value Type='Text'>Smith</Value></Eq>”
    + “</Where>”;
qry.Query = camlquery;
Ultimamente però mi è nata un esigenza: creare delle query runtime a seconda delle opzioni del cliente.
Purtroppo speficiare le AND/OR logiche nelle query CAML non è molto smart:
 
<Where>
  <And>
    <And>
      <And>
          <Eq>
            <FieldRef Name='LastName' />
            <Value Type='Text'>Janssens</Value>
          </Eq>
          <Geq>
            <FieldRef Name='Age' />
            <Value Type='Number'>21</Value>
          </Geq>
        </And>
        <Lt>
          <FieldRef Name='Age' />
          <Value Type='Number'>60</Value>
        </Lt>
      </And>
      <Eq>
        <FieldRef Name='Country' />
        <Value Type='Lookup'>Belgium</Value>
      </Eq>
    </And>
</Where>
No bello
Quindi ho aperto VS 2010 e stavo iniziando a scrivere una bella libreria che faceva a caso mio ma, dopo la 3 interfaccia,
  
ho aperto google ed ho trovato questo codice del 2009:
http://www.codeproject.com/KB/sharepoint/CAMLBuilder-Expressions.aspx
e sembra funzionare egregiamente 