Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 21st, 2012  |  syntax: None  |  size: 1.46 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Linq type conversion on generic types
  2. public GridBindingData GetSomething() {
  3.  
  4. DataTable dt = GetDatatable();
  5.  
  6. var columns = dt.Columns.Cast<System.Data.DataColumn>();
  7.  
  8. var data = dt.AsEnumerable()
  9.     .Select(r => columns.Select(c => new { Column = c.ColumnName, Value = r[c] })
  10.     .ToDictionary(i => i.Column, i => i.Value != System.DBNull.Value ? i.Value : null))
  11.     .ToList<object>();
  12.  
  13. return new GridBindingData() { Data = data , Count = dt.Rows.Count };
  14. }
  15.        
  16. List<object> newdata = (List<object>)data.AsEnumerable().Cast<object>();
  17.        
  18. var data = dt.AsEnumerable()
  19.     .Select(r => columns.Select(c => new { Column = c.ColumnName, Value = r[c] })
  20.     .ToDictionary(i => i.Column, i => i.Value != System.DBNull.Value ? i.Value : null))
  21.     .Cast<object>()
  22.     .ToList();
  23.        
  24. csharp> new Dictionary<string, string> { {"key","value"} }.ToList().Cast<object>();
  25. { [key, value] }
  26.  
  27. csharp> new Dictionary<string, string> { {"key","value"} }.Cast<object>().ToList();              
  28. { [key, value] }
  29.        
  30. data = dt.AsEnumerable()
  31.     .Select(r => columns.Select(c => new { Column = c.ColumnName, Value = r[c] })
  32.     .ToDictionary(i => i.Column, i => i.Value != System.DBNull.Value ? i.Value : null))
  33.     .Select(x => (object)x)
  34.     .ToList();
  35.        
  36. data = dt.AsEnumerable()
  37.     .Select(r => columns.Select(c => new { Column = c.ColumnName, Value = r[c] })
  38.     .ToDictionary(i => i.Column, i => i.Value != System.DBNull.Value ? i.Value : null))
  39.     .Select(x => (object)x.Value)
  40.     .ToList();