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のオブジェクトのサイズがXとYが10〜10で、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 に答える