使用 LINQ 按索引连接

use*_*051 2 c# linq

我有 2 个字节数组

var Bytes =new byte[20];
var Indecies =new byte[20];
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用 LINQ,我需要将它们连接到数组中以创建一个对象。

public ArrayObject
{
   public byte index{get;set;}
   public byte value{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这就是我的开始方式

var list = from b in Bytes 
           join i in Indecies 
           select new ArrayObject()
               { index=i, value=b }
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚该ON零件要放什么,在一个循环中它会是

for (int i = 0; i < 20; i++)
{
    list.Add(new ArrayObject() { value = Bytes[i], index = indecies[i] });
}
Run Code Online (Sandbox Code Playgroud)

如何在 Linq 中通过数组索引连接?

dee*_*see 5

不是很好的LINQ语法,但是......

var list = Indecies.Zip(Bytes, (i, b) => new ArrayObject() { value = b, index = i }).ToList();
Run Code Online (Sandbox Code Playgroud)

您可以ZipMSDN上阅读相关内容。

  • 为什么不?我觉得这正是他所需要的问题,但我可能误解了一些东西。 (2认同)