C# - 在For循环中创建一个字符串数组

时间:2016-01-22 15:59:41

标签: c# arrays

我有以下代码,我正在尝试从每个雇主那里获取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;
            }

2 个答案:

答案 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;