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

本文关键字:创建 字符串 数组 循环 For | 更新日期: 2023-09-27 18:31:25

我有以下代码,我试图从每个雇主那里取出 GeneralAgency 属性,并将其添加到一个名为 agency 的新字符串数组中。但是,我收到错误"使用未分配的局部变量'机构'"有人可以解释我做错了什么吗?

            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;
            }

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

只需执行以下操作:

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 代码。

您需要先创建数组。您还需要指定数组的大小。

agencies = new string[employers.Count()];

C# 中的数组始终具有固定长度。如果您事先不知道大小,请使用 List<>。

还可以使用 LINQ 编写更短的代码:

var agencies = from employer in employers select employer.GeneralAgency;