Список строк в массиве NVPair - PullRequest
0 голосов
/ 08 февраля 2012

Работа с API, где мне нужно отправить значение в массиве NVPairs, например:

new[]
{
    new[]
    {
        new NVPair
        {
            name = "email_address",
            value = "email1@email.com"
        }
    },
    new[]
    {
        new NVPair
        {
            name = "email_address",
            value = "email2@email.com"
        }
     }
}

Мне нужно иметь возможность создать это (значение или "email2 @")email.com ") из списка строк (это будут адреса электронной почты).

Кто-нибудь сможет дать какое-нибудь руководство?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Предполагая, что вам действительно нужен массив одноэлементных массивов, я подозреваю, что вы хотите:

var nvPairs = strings.Select(x => new[] { new NVPair("email_address", x) })
                     .ToArray();

Это также предполагает, что рассматриваемый тип NVPair имеет двухпараметрический конструктор, принимаяимя и значение.Если это не так, запрос становится более уродливым:

var nvPairs = strings.Select(x => new[] { new NVPair { name = "email_address",
                                                       value = x } })
                     .ToArray();

Обратите внимание на new[], так что каждый элемент преобразуется в массив из одного элемента.

Другая опция, которая по крайней мереработа с точки зрения времени компиляции заключается в создании одноэлементного внешнего массива, где его единственным элементом был многоэлементный массив:

var nvPairs = new[] { strings.Select(x => new NVPair("email_address", x))
                             .ToArray() };
1 голос
/ 08 февраля 2012

Предполагая, что вы хотите создать массив NVPair s, а не массив одноэлементных NVPair массивов, вы можете использовать Linq для достижения этого:

using System.Linq;
...
var strings = new[] { "email1@email.com", "email2@email.com" };
var nvpairArray = strings.Select(s => new NVPair { name = "email_address", value = s }).ToArray();

Обновление

NVPair[][] nvpairArrayOfArrays = strings.Select(s => new NVPair[] { new NVPair { name = "email_address", value = s } }).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...