0

linqの結果をdouble配列に割り当てたい。2つのオブジェクト配列があります。私はそれらを以下のようにフェッチします:

var chartSeries = MeterReadings.GroupBy(x => x.Name)
                  .Select(g => new
                  {
                     Name = g.Key,
                     Data = g.Select(x => x.Value).ToArray(),
                     Date = g.Select(x => x.ReadDate).ToArray()
                  }).ToArray();

そして、コードを割り当てようとしています:

foreach (var item in chartSeries)
{
    int length = item.Data.Length;
    object[,] data =  ???  //first array item.Data and second item.Dates
    Series localSeries = new Series 
                         {
                              Name = item.Name, Data = new Data(data), Type = ChartType 
                         };
     Series.Add(localSeries);
 }

この行object[,] data = ??? 私は何を書くべきですか?こんなもの欲しいobject[,] data = { item.Data, item.Dates }

私はこのようにしようとしています:

Data = new Data(new object[,]
       {
          { new DateTime(1970, 9, 27), 0 },
          { new DateTime(1970, 10, 10), 0.6 },
          { new DateTime(1970, 10, 18), 0.7 },
          { new DateTime(1970, 11, 2), 0.8 },
          { new DateTime(1970, 11, 9), 0.6 },
          { new DateTime(1970, 11, 16), 0.6 },
          { new DateTime(1970, 11, 28), 0.67 },
          { new DateTime(1971, 1, 1), 0.81 },
          { new DateTime(1971, 1, 8), 0.78 },
          { new DateTime(1971, 1, 12), 0.98 },
          { new DateTime(1971, 1, 27), 1.84 },
          { new DateTime(1971, 2, 10), 1.80 },
          { new DateTime(1971, 2, 18), 1.80 },                                                            
          { new DateTime(1971, 6, 12), 0 }
       })

ありがとう...

4

2 に答える 2

4

私はvarを使用することを好みます:

var data = new object[2][];
data[0] = item.Data.Cast<Object>().ToArray();
data[1] = item.Date.Cast<Object>().ToArray();

あなたが与えた精度で、あなたは使うかもしれません:

var data = item.Date.Zip(item.Data, (n, m) => new[] { n as object, m as object }).ToArray();
于 2012-11-22T08:09:34.053 に答える
1

このような何かがあなたが必要とすることをするはずです:

object[,] data = new object[2,length];

for (int i; i < length; i++)
{
    data[0, i] = item.Date[i];
    data[1, i] = item.Data[i];
}

配列をどのように構築するかを確認する必要があります(object[2,length]またはobject[length,2]。また、日付を「最初」に配置する必要があると想定しています。

于 2012-11-22T08:04:49.110 に答える