如何处理 LINQ 中的并行数组?

大锤

我有 2 个单独的数组(来自 Json,但这并不重要)。它们排成一排……即 arr1[1] 与 arr2[1] 搭配。

我想创建一个包含一些捕获的 Test 对象列表:

1) both arr1 and arr2 value can't be null
2) I'm only interested in indexes where the arr1 element is a multiple of 5

这是我到目前为止:

class Test
{
    public double d1;
    public double d2;
}

class Program
{
    static void Main(string[] args)
    {
        string[] arr1 = new string[] { "0", "2", "5", "7", "10", "11", null, "13", "15" };
        string[] arr2 = new string[] { "11", "13", "56", "8", null, "44", "55", "66", "77" };

        var v = arr1.Where(x => !String.IsNullOrEmpty(x)).Select(x => Double.Parse(x)).Where(x => (x % 5) == 0).Select((x, y) => new Test
        {
            d1 = x,
            d2 = Double.Parse(arr2[y])
        });
    }
}

我不确定如何跳过 arr2 为空的那些并且对齐变得混乱。

LB2

为了不搞乱对齐,您应该首先.Zip将两个数组对齐然后,如果我理解正确,null应该跳过在任一数组中具有as 值的那些索引,因此您可以使用 过滤掉它们.Where,然后执行其余的逻辑。

class Test
{
    public double d1;
    public double d2;
}

class Program
{
    static void Main(string[] args)
    {
        string[] arr1 = new string[] { "0", "2", "5", "7", "10", "11", null, "13", "15" };
        string[] arr2 = new string[] { "11", "13", "56", "8", null, "44", "55", "66", "77" };

        var v = arr1
            .Zip(arr2, (x, y) => new {x, y})
            .Where(a => !string.IsNullOrEmpty(a.x) && !string.IsNullOrEmpty(a.y))
            .Select(a => new Test { d1 = double.Parse(a.x), d2 = double.Parse(a.y) })
            .Where(a => (a.d1 % 5) == 0);

       // TODO, ready to enumerate over v.
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Java中的并行数组中删除重复项?

来自分类Dev

如何编写并行数组

来自分类Dev

如何处理数组的内容?

来自分类Dev

在Lua中,如何处理?

来自分类Dev

如何在Java中没有并行项的情况下将并行数组中的元素复制到新的并行数组中?

来自分类Dev

如何处理XSLT中的处理指令

来自分类Dev

如何处理TcpStream上的并行读写?

来自分类Dev

如何处理任务并行库中的目录文件?

来自分类Dev

如何处理任务并行库中的目录文件?

来自分类Dev

如何处理NodeJ中的多个并行请求

来自分类Dev

C#LINQ:如何处理通配符搜索?

来自分类Dev

如何处理numpy数组内的ZeroDivisionError

来自分类Dev

如何处理“不合格”数组?

来自分类Dev

memcpy如何处理指向数组的指针?

来自分类Dev

Julia Type Graph如何处理数组?

来自分类Dev

HTTPArty / Rails:如何处理Response数组

来自分类Dev

如何处理“不合格”数组?

来自分类Dev

如何处理大数组/列表

来自分类Dev

Visual Basic中的C#-如何从并行数组中添加整数?

来自分类Dev

如何处理承诺中的错误?

来自分类Dev

如何处理Asmack中的临时异常

来自分类Dev

如何处理模板中的复杂分支?

来自分类Dev

如何处理Scapy中的封闭端口?

来自分类Dev

如何处理组件中的异步输入?

来自分类Dev

如何处理Express 4中的FormData

来自分类Dev

如何处理angularjs中的回调?

来自分类Dev

如何处理OpenGL中的透视投影?

来自分类Dev

在Polyfill算法中如何处理水平

来自分类Dev

异步如何处理Javascript中的变量?