私はC#の初心者ですが、これを理解できるはずです。私の検索スキルは、私に直接答えを与えていない。C#で1つのスコープレベルから文字列配列を変更する
文字列配列に格納されている2つのアプリケーション設定があります(分割されたリストから分割されています)。
最終的に、両方の設定に条件付きのコードを1つずつ実行したいとします。
条件は
- 設定がアレイ1(domattributes)に存在する場合、それぞれの設定値にコードを実行します。
- 設定が配列2(intlattributes)にも存在する場合は、配列1または配列に含まれる各設定値でコードを実行してください。
- 以下は、if/elseステートメントを使用して文字列配列は動作しません。私は文字列の配列が実際にあれば/に内蔵されているので、それがあると仮定していますエラー
名「attributeIds」は現在のコンテキストで
存在しません取得
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));
}...
編集、Obedのおかげで。あなたは私にそれを打つ:) – gmaness