2016-05-26 3 views
-1

私はテンプレートのは

 usertags.Anger.FirstMainTag.SubTags.FirstSubTag = Top3SubAngerFirst[0].Sub_Tag; 
     usertags.Anger.FirstMainTag.SubTags.FirstSubTagScore = Top3SubAngerFirst[0].AngerEmotion; 
     usertags.Anger.FirstMainTag.SubTags.SecondSubTag = Top3SubAngerFirst[1].Sub_Tag; 
     usertags.Anger.FirstMainTag.SubTags.SecondSubTagScore = Top3SubAngerFirst[1].AngerEmotion; 
     usertags.Anger.FirstMainTag.SubTags.ThirdSubTag = Top3SubAngerFirst[2].Sub_Tag; 
     usertags.Anger.FirstMainTag.SubTags.ThirdSubTagScore = Top3SubAngerFirst[2].AngerEmotion; 
私は usertags.Anger.ためにこれらの割り当てを実行する必要があり

usertags.Happy.はどのように私は私が持っていないことが、このようなことになるだろう、それは次のような形式であるコードの繰り返しの多い取り扱っております毎回これを書いてください。ここで

おかげ

+0

...あなたはあなたのコードを短縮しやすいようにしたいですあなたは何かの方法で機能を変更したいのですか?毎回それを入力したくないのであれば、 "usertag"変数を参照してそのコードを空にしてください。また、forループを使用すると、より明確にすることができます。 –

+0

私の意見では、 'ファースト*'、 'セカンド*'メンバーは、彼らがより良い配列を保つことを示唆している。それで解決策が明らかになります。あなたがそのクラスを変更することができれば、それを行います。もしそうでなければ、オリジナルの各メンバーを指す参照の配列を保持するラッパーまたはアクセサを書くことができます。 –

答えて

1

あなたは(あなたが必要なタイプにオブジェクトを変更する必要があります)試すことができるものである:質問を理解できませんでした

enum TagIndexEnum { First, Second, Third }; 
    public static void SetSubTag(TagIndexEnum tagIndex, object[] array, object subTags) 
{ 
    switch (tagIndex) 
    { 
     case TagIndexEnum.First: 
      subTags.FirstSubTag = array[0].Sub_Tag; 
      subTags.FirstSubTagScore = array[0].AngerEmotion; 
      break; 
     case TagIndexEnum.Second: 
      subTags.SecondSubTag = array[1].Sub_Tag; 
      subTags.SecondSubTagScore = array[1].AngerEmotion; 
      break; 
     case TagIndexEnum.Third: 
      subTags.ThirdSubTag = array[2].Sub_Tag; 
      subTags.ThirdSubTagScore = array[2].AngerEmotion; 
      break; 

     default: 
      throw new InvalidOperationException(); 
    } 
} 
    // Using  
    var subTags = usertags.Anger.FirstMainTag.SubTags; 
    // usertags.Anger.FirstMainTag.SubTags.FirstSubTag = Top3SubAngerFirst[0].Sub_Tag; 
    // usertags.Anger.FirstMainTag.SubTags.FirstSubTagScore = Top3SubAngerFirst[0].AngerEmotion; 
    SetSubTag(TagIndexEnum.First, Top3SubAngerFirst, subTags); 

    // usertags.Anger.FirstMainTag.SubTags.SecondSubTag = Top3SubAngerFirst[1].Sub_Tag; 
    // usertags.Anger.FirstMainTag.SubTags.SecondSubTagScore = Top3SubAngerFirst[1].AngerEmotion; 
    SetSubTag(TagIndexEnum.Second, Top3SubAngerFirst, subTags); 

    // usertags.Anger.FirstMainTag.SubTags.ThirdSubTag = Top3SubAngerFirst[2].Sub_Tag; 
    // usertags.Anger.FirstMainTag.SubTags.ThirdSubTagScore = Top3SubAngerFirst[2].AngerEmotion; 
    SetSubTag(TagIndexEnum.Third, Top3SubAngerFirst, subTags); 
関連する問題