我有以下代码,我正在尝试从每个雇主那里获取GeneralAgency属性并将其添加到名为agencies的新字符串数组中。但是,我收到错误“使用未分配的本地变量'代理商'”有人可以解释我做错了吗?
var employers = _employerRepository.GetByTaxId(taxId).ToList(); //gives me list of employer objects
string[] agencies;
for (int i = 0; i < employers.Count(); i++ )
{
agencies[i] = employers[i].GeneralAgency;
}
答案 0 :(得分:1)
请执行以下操作:
var employers = _employerRepository.GetByTaxId(taxId).ToList();
string[] agencies = new string[employers.Count];
for (int i = 0; i < employers.Count; i++ )
{
agencies[i] = employers[i].GeneralAgency;
}
如果你不需要这个循环,你可以做到:
var agencies = _employerRepository.GetByTaxId(taxId).Select(a => a.GeneralAgency).ToArray();
这只是简单的LINQ代码。
答案 1 :(得分:0)
您需要先创建阵列。您还需要指定数组的大小。
agencies = new string[employers.Count()];
C#中的数组总是有固定的长度。如果您事先不知道尺寸,请使用列表&lt;&gt;。
你也可以使用LINQ来编写更短的代码:
var agencies = from employer in employers select employer.GeneralAgency;