2
class A
{
   public string[] X {get;set;}
   public string[] Y {get;set;}
}

class B
{
  public string X {get;set;}
  public string Y {get;set;}
}

使用 Linq 将 A 对象的数据传输到 B 的数组?假设 A 的对象有 10-10 大小的 X 和 Y,我想转移到 B 数组(B[] b = new B[10])

A a = new A();
//put 10 items in both x and y
B[] b = new B[10];
//here I want to get a's data to b
4

1 回答 1

5

您可以使用ZipLINQ 中的方法:

A a = new A();
B[] bs = a.X.Zip(a.Y, (x, y) => new B() { X = x, Y = y })
            .ToArray();

Select与索引一起使用:

B[] bs = a.X.Select((x, i) => new B {X = x, Y = a.Y[i]})
            .ToArray();

Enumerable.Range如果您卡在 .NET 3.5 上,另一种使用方法:

B[] bs = Enumerable.Range(0, 10)
                   .Select(i => new B {X = a.X[i], Y = a.Y[i]})
                   .ToArray();
于 2012-11-03T12:48:44.830 回答