私は C# の初心者ですが、これを理解できるはずです。私の検索スキルも直接的な答えを与えてくれませんでした。
文字列配列に格納されている 2 つのアプリケーション設定があります (それらは , で区切られたリストから分割されています)。
最終的には、両方の設定を条件として、コードの 1 つのチャンクを実行したいと考えています。
条件は次のとおりです。
- 配列 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));
}...