c# - Selecting columns from a LINQ query -


I want to be able to select the columns displayed in my datagrid view. I.e., I have a linq query that gives an IEnumerable, but I do not want to display all the properties of the policy - I want to allow the user to show what to display. So I thought that something like this could work to create a "narrow" object with only columns.

  IEnumerable & lt; Policy & gt; Policies = Repository Gate policies (); P = Out of the policies = Negatives = Select new (if user ("propertyon") ()) propertyon = p. Property On, if (userpic ("property two")) PropertyTwo = p.PropertyTwo, ...}; DataGridView1.DataSource = Results;  

Is there a great way to do this?

Part 2: Why does this work:

  IEnumerable & lt; Policy & gt; Policies = Repository Gate policies (); DataGridView1.DataSource = Policies;  

But it is not:

  IEnumerable  

In the second case nothing is displayed in the grid.

If you need to select the field dynamically, use it in a selection is an extension method that accepts a string of fields, so that you can decide which fields to select at runtime:

  select the public static IQueryable (this IQueryable source , String selector, parameters object [] value);  

Example of use:

  var products = db.Products. Where (status). Orderbird ("name"). Select ("new ID (ID id, name, model, onsale)");  

Part 2: Your grid is expecting a bindable interface such as IList , but the second code gives the example IQueryable is. You can call it iliast to toList () .

  var can change by result = (Select P from the policies p). List ();  

Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -