web-dev-qa-db-ja.com

リストのすべてのアイテムから特定のプロパティを取得します

連絡先のリストがあります:

public class Contact
{
    private string _firstName;
    private string _lastName;
    private int _age;

    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="fname">Contact's First Name</param>
    /// <param name="lname">Contact's Last Name</param>
    /// <param name="age">Contact's Age</param>
    public Contact(string fname, string lname, int age)
    {
        _firstName = fname;
        _lastName = lname;
        _age = age;
    }

    /// <summary>
    /// Contact Last Name
    /// </summary>
    public string LastName
    {
        get
        {
            return _lastName;
        }
        set
        {
            _lastName = value;
        }
    }

    /// <summary>
    /// Contact First Name
    /// </summary>
    public string FirstName
    {
        get
        {
           return _firstName;
        }
        set
        {
            _firstName = value;
        }
    }

    /// <summary>
    /// Contact Age
    /// </summary>
    public int Age
    {
        get
        {
            return _age;
        }
        set
        {
            _age = value;
        }
    }
}

ここでリストを作成しています:

private List<Contact> _contactList;
_contactList = new List<Contact>();
_contactList.Add(new Contact("John", "Jackson", 45));
_contactList.Add(new Contact("Jack", "Doe", 20));
_contactList.Add(new Contact("Jassy", "Dol", 19));
_contactList.Add(new Contact("Sam", "Josin", 44));

現在、LINQを使用して、すべての連絡先のすべての名を別のリストに取得しようとしています。

これまで私は試しました:

    public List<string> FirstNames
    {
        get
        {
           return _contactList.Where(C => C.FirstName.ToList());
        }
    }
23
inside

ここでは、Selectではなく、Whereメソッドを使用します。

__contactList.Select(C => C.FirstName).ToList();
_

さらに、propertyが要求するので、ToList()の必要性のみが存在します。削除したい場合は、代わりに_IEnumerable<string>_を返すことができます。

43
Mike Perrenoud
public List<string> FirstNames
{
    get
    {
       return _contactList.Select(C => C.FirstName).ToList();
    }
}
5
Reda