141 votes

C# : Comment convertir une liste d'objets en une liste d'une seule propriété de cet objet ?

Dites que j'ai :

IList<Person> people = new List<Person>();

Et l'objet person a des propriétés comme FirstName, LastName et Gender.

Comment puis-je convertir ceci en une liste de propriétés de l'objet Personne. Par exemple, à une liste de prénoms.

IList<string> firstNames = ???

233voto

Dario Points 26259
List<string> firstNames = people.Select(person => person.FirstName).ToList();

Et avec le tri

List<string> orderedNames = people.Select(person => person.FirstName).OrderBy(name => name).ToList();

8voto

Jon Sagara Points 697
IList<string> firstNames = (from person in people select person.FirstName).ToList();

Ou

IList<string> firstNames = people.Select(person => person.FirstName).ToList();

4voto

Gregoire Points 11270
firstNames = (from p in people select p=>p.firstName).ToList();

2voto

Mohd Shahnawaz Points 11
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestProject
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SampleDataContext context = new SampleDataContext();
            List<Employee> l = new List<Employee>();
            var qry = from a in context.tbl_employees where a.Gender=="Female"  
                orderby  a.Salary ascending
            select new Employee() {
                           ID=a.Id,
                           Fname=a.FName,
                           Lname=a.Lname,
                           Gender=a.Gender,
                           Salary=a.Salary,
                           DepartmentId=a.DeparmentId
            };
            l= qry.ToList();
            var e1 =  from  emp in context.tbl_employees
                where emp.Gender == "Male"
                orderby emp.Salary descending
                select  emp;
            GridView1.DataSource = l;
            GridView1.DataBind();
        }
    }
    public class Employee
    {
        public Int64 ID { get; set; }
        public String Fname { get; set; }
        public String Lname { get; set; }
        public String Gender { get; set; }
        public decimal? Salary { get; set; }
        public int? DepartmentId { get; set; }
    }
}

2voto

M Fatih Koca Points 461
using System.Collections.Generic;
using System.Linq;

IList<Person> people = new List<Person>();
IList<string> firstNames = people.Select(person => person.FirstName).ToList();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X