LINQ选择新错误.无法访问列表

Paw*_*anS 2 c# linq

我的Linq查询是.

string spouseName="jenny";
var empData = from sData in EmpList
              from member in sData.familyNames
              where string.Compare(member, spouseName, true) == 0
              select new Employee
              {
                  CompanyDept = sData.company,
                  EmpName = sData.empName,
                  FamilyNames.Add(spouse)   //ERROR HERE Not able to access as list
              };
Run Code Online (Sandbox Code Playgroud)

这里empList是 List<Employee>

class Employee
{
   private string companyDept
   private string empName
   private List<string> _familyNames = new List<string>();

   public string CompanyDept
   {
      get { return companyDept}
      set { companyDept= value; }
   }

   public string EmpName
   {
      get { return empName}
      set { empName= value; }
   }

   public List<string> FamilyNames 
   {
      get { return _familyNames }
      set { _familyNames = value; }
   }
}
Run Code Online (Sandbox Code Playgroud)

题:

在这里,我试图获得类型的linq输出Employee...但列表familyNames只包含一个项目配偶名称,而不是所有家庭成员的列表.

但我在familyList收到错误.无法将项目添加到familyNames列表以无法分配.

需要帮助,为什么错误来了或我错了?

Ani*_*Ani 6

正确的翻译是:

select new Employee
{
    CompanyDept = sData.company,
    EmpName = sData.empName,
    FamilyNames = { spouse } // 'nested' collection-initializer
};
Run Code Online (Sandbox Code Playgroud)

原因是你只需要一个Add调用FamilyMember,而不是一个完整的属性重新分配到一个新的列表,这是FamilyNames = new List<string> { spouse }可以做的.

松散地说,这意味着:

var temp = new Employee();
temp.CompanyDept = sData.company;
temp.EmpName = sData.empName;
temp.FamilyNames.Add(spouse);
return temp; // this is selected.
Run Code Online (Sandbox Code Playgroud)