2009-09-22 12 views

Répondre

97
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(); 
+0

Merci. Aussi, comment pourrais-je trier cela par ordre alphabétique par prénom? – User

+0

Liste firstNames = people.Select (personne => personne.Prénom) .ToList(). Sort(); Cela va trier en utilisant le tri alphabétique par défaut de la chaîne. –

+0

Sort() ne supporte pas une interface fluide! Appelez firstNames.Sort() séparément – Dario

3
firstNames = (from p in people select p=>p.firstName).ToList(); 
+7

L'utilisation d'une expression de requête dans ce cas est une surcharge, IMO. La notation par points a moins de peluches si vous avez juste une opération simple. –

+1

Vrai, mais la question était "Comment cela peut-il être fait" ... pas "Comment cela peut-il être fait avec le moins de peluches". Pas d'irrespect, Jon. (S'il vous plaît ne me frappe pas). –

4
IList<string> firstNames = (from person in people select person.FirstName).ToList(); 

Ou

IList<string> firstNames = people.Select(person => person.FirstName).ToList(); 
1
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; } 
    } 
} 
0
using System.Collections.Generic; 
using System.Linq; 

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

Merci pour cet extrait de code, qui pourrait fournir une aide limitée à court terme. Une explication appropriée [améliorerait grandement] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) sa valeur à long terme en montrant pourquoi c'est une bonne solution au problème et le rendrait plus utile aux futurs lecteurs avec d'autres questions similaires. S'il vous plaît modifier votre réponse pour ajouter quelques explications, y compris les hypothèses que vous avez faites –

Questions connexes