Php 2d массив как C # 2d массив / структура - PullRequest
0 голосов
/ 23 апреля 2010

Я использую API MailChimp для подписки электронной почты на список. Функция listsubscribe () используется для подписки по электронной почте:

public static  listSubscribe(string apikey, string id, string email_address, array merge_vars, string email_type, boolean double_optin, boolean update_existing, boolean replace_interests, boolean send_welcome)

Я скачал официальную .NET оболочку MailChimp для их API

При просмотре в Visual Studio это одна из перегруженных функций:

listSubscribe(string apikey, string id, string email_address, MCMergeVar[] merges)

Когда я нажимаю на определение MCMergeVar [], это выходит:

[XmlRpcMissingMapping(MappingAction.Ignore)]
    public struct MCMergeVar
    {
        public string name;
        public bool req;
        [XmlRpcMissingMapping(MappingAction.Error)]
        public string tag;
        public string val;
    }

В примере php на сайте MailChimp, вот как объявляется переменная merges:

$merge_vars = array('FNAME'=>'Test', 'LNAME'=>'Account', 'INTERESTS'=>'');

Как правильно написать этот массив для моей оболочки C #? Я пробовал что-то вроде этого:

MCMergeVar[] subMergeVars = new MCMergeVar[1];
subMergeVars["FNAME"] = "Test User";

Но для этого требуется int в том месте, где теперь находится "FNAME", так что это не работает ...

Заранее спасибо, Ile

РЕДАКТИРОВАТЬ 1: Я попробовал решение FoxFire, но никакие данные из subMergeVars не передаются на сервер MailChimp, только электронная почта:

// Subscribe email to list
            string subID = "26973e52cc";
            string subEmail = "mymail@some.com.hr";
            MCMergeVar[] subMergeVars = new MCMergeVar[5];
            subMergeVars[0].name = "FNAME";
            subMergeVars[0].val = "FNDynamic";
            subMergeVars[1].name = "LNAME";
            subMergeVars[1].val = "LNDynamic";

            mailChimp.api.listSubscribe(subID, subEmail, subMergeVars, "html");

Ответы [ 2 ]

1 голос
/ 23 апреля 2010

Скорее всего:

MCMergeVar[] subMergeVars = new MCMergeVar[1]; 
subMergeVars[0].name = "FNAME"; 
subMergeVars[0].val = "Test User"; 
0 голосов
/ 11 февраля 2011

Попробуйте:

var mergeVars = new List<MCMergeVar>();

mergeVars.Add(new MCMergeVar() { tag = "FNAME", val = "Test User First Name" });
mergeVars.Add(new MCMergeVar() { tag = "LNAME", val = "Test User Last Name" });

Затем используйте:

mergeVars.ToArray()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...