我是 C# 的新手,但我知道我应该能够弄清楚这一点。我的搜索技巧也没有给我一个直接的答案。
我有两个存储在字符串数组中的应用程序设置(它们已从分隔列表中拆分出来)。
最终,我想根据两种设置运行一段代码。
条件是:
- 如果数组 1 (domattributes) 中存在设置,请在每个设置值上运行代码。
- 如果数组 2 (intlattributes) 中也存在设置,则对数组 1 或数组中包含的每个设置值运行代码
- 下面是我尝试使用 if/else 语句构建字符串数组的方法,但它不起作用。
我得到错误
当前上下文中不存在名称“attributeIds”
我假设这是因为字符串数组实际上是在 if/else 语句中构建的,并且可能与尝试使用它的 foreach 方法处于不同的范围内。任何帮助,将不胜感激。这是代码:
if (!string.IsNullOrEmpty(DomAttributesSetting))
{
if (!string.IsNullOrEmpty(IntlAttributesSetting))
{
string[] domattributeIds = DomAttributesSetting.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] intlattributeIds = IntlAttributesSetting.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] attributeIds = new string[domattributeIds.Length + intlattributeIds.Length];
Array.Copy(domattributeIds, attributeIds, domattributeIds.Length);
Array.Copy(intlattributeIds, 0, attributeIds, domattributeIds.Length, intlattributeIds.Length);
}
else
{
string[] attributeIds = DomAttributesSetting.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
}
foreach (string attributeId in attributeIds)
{
PersonAttribute personAttribute = (PersonAttribute)person.Attributes.FindByID(int.Parse(attributeId));
if (personAttribute == null)
{
personAttribute = new PersonAttribute(person.PersonID, int.Parse(attributeId));
}...