title: C# List<List<string>> filtering with LinQ
body: <p>I have a List&lt;List&lt;string&gt;&gt; and need to filter the inner List. It looks like this:</p>
  
  <pre><code>{["/DownloadFile2.aspx?File=1026704PR20131001.PDF","10/1/2013 | Monthly Memo","10/1/2013","","","CI","","","","","",""],
   ["/DownloadFile2.aspx?File=1026704PR20141001.PDF","10/1/2014 | Monthly Memo","10/1/2014","","","CC","","","","","",""],
   ["/DownloadFile2.aspx?File=1026704date20130928.PDF","9/30/2013 | New Memo","9/30/2013","","","CC","","","","","",""],
   ["/DownloadFile2.aspx?File=1026704date20140928.PDF","9/30/2014 | New Memo","9/30/2014","","","CI","","","","","",""]}
  </code></pre>
  
  <p>How would I filter the second column using a LINQ .Where clause?</p>
  
  <p>Like filtering on the term "Monthly" would return:</p>
  
  <pre><code>{["/DownloadFile2.aspx?File=1026704PR20131001.PDF","10/1/2013 | Monthly Memo","10/1/2013","","","CI","","","","","",""],
   ["/DownloadFile2.aspx?File=1026704PR20141001.PDF","10/1/2014 | Monthly Memo","10/1/2014","","","CC","","","","","",""]}
  </code></pre>
  
  <p><strong>Adding Code</strong></p>
  
  <p>Archive Definition from my web service:</p>
  
  <pre><code>[DataContract(Namespace = "http://www.mysite.com")]
  public class Archive
  {
      [DataMember]
      public List&lt;string&gt; Header {get; set;}
  
      [DataMember]
      public List&lt;List&lt;string&gt;&gt; Rows{get; set;}
  }
  </code></pre>
  
  <p>Code geting the Archive from the service (mps is the web service)</p>
  
  <pre><code>/// param contains values used to retrieve a partial set
  /// as well as other values used to pass data to jQuery DataTable
  ///
  Archive docs = mps.GetArchiveArray(LogonTicket, PID, param.iDisplayStart, param.iDisplayLength, "D");
  
  List&lt;List&lt;string&gt;&gt; filteredRows;
  
  // If the params sSearch value is not null or empty, filter the results
  // else return the full results
  if (!string.IsNullOrEmpty(param.sSearch))
  {
      // Here's where I need to filter the result set based on the params.sSeach value.
      filteredRows = docs.Rows.?????;
  }
  else
  {
      filteredRows = docs.Rows;
  }
  </code></pre>
  
  <p>The filteredRows are then passed through a loop to build my JSON using a StringBuilder and then the full desired result is sent as JSON:</p>
  
  <pre><code>string result =  sb.ToString();
  return Json(new
  {
      sEcho = param.sEcho,
      iTotalRecords = numDocs,
      iTotalDisplayRecords = numDocs,
      aaData = result
  },
  JsonRequestBehavior.AllowGet);
  </code></pre>