C #: उस ऑब्जेक्ट की एकल संपत्ति की सूची में वस्तुओं की सूची कैसे परिवर्तित करें?


104

कहो मेरे पास:

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

और व्यक्ति वस्तु में FirstName, LastName और Gender जैसे गुण हैं।

मैं इसे व्यक्ति वस्तु के गुणों की सूची में कैसे बदल सकता हूं। उदाहरण के लिए, पहले नामों की सूची के लिए।

IList<string> firstNames = ???

जवाबों:


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

और छँटाई के साथ

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

धन्यवाद। इसके अलावा, मैं पहले नाम से कैसे वर्णानुक्रम में छाँटेगा?
यूजर

सूची <string> firstNames = people.elect (person => person.FirstName) .ToList ()। सॉर्ट (); यह स्ट्रिंग के डिफ़ॉल्ट अल्फाबेटिंग सॉर्टिंग का उपयोग करेगा।
पॉल विलियम्स

सॉर्ट () धाराप्रवाह इंटरफ़ेस का समर्थन नहीं करता है! FirstNames.Sort () को अलग से कॉल करें
Dario

var list = लोगों से व्यक्ति में क्रमबद्ध person.FirstName व्यक्ति का चयन करें। FirstName;
कंसल्ट यू

एसओ पर सबसे अच्छा जवाब में से एक! (मेरी अज्ञानता हो सकती है) :)
nawfal

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

या

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

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

7
इस मामले में एक क्वेरी अभिव्यक्ति का उपयोग करना ओवरकिल, IMO है। यदि आपने अभी-अभी एक साधारण ऑपरेशन किया है तो डॉट नोटेशन में कम फुल है।
जॉन स्कीट

1
यह सच है, लेकिन सवाल यह था कि "यह कैसे किया जा सकता है" ... नहीं "यह कैसे कम से कम फुलाना के साथ किया जा सकता है"। कोई अनादर नहीं, जॉन। (कृपया मुझे मत मारो)।
डान एस्परज़ा

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();

इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित अल्पकालिक सहायता प्रदान कर सकता है। एक उचित व्याख्या यह दर्शाती है कि यह समस्या का एक अच्छा समाधान क्यों है, यह दिखाते हुए इसके दीर्घकालिक मूल्य में बहुत सुधार करेगा और यह भविष्य के पाठकों के लिए अन्य, समान प्रश्नों के साथ अधिक उपयोगी होगा। कृपया कुछ स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें, जिसमें आपके द्वारा की गई धारणाएं शामिल हैं
शॉन सी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.