NVPair数组的字符串列表

本文关键字:列表 字符串 数组 NVPair | 更新日期: 2023-09-27 18:23:35

使用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")。

有人能提供一些指导吗?

NVPair数组的字符串列表

假设你真的想要一个单元素数组的数组,我怀疑你想要:

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() };

假设您想要创建一个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();