-1

次のタイプのarr1arr2の2 つの配列があります。

class Data
{
  public int IdProduct;
  public double Price;
}

arr2 の Price を arr1から差し引く必要がありますが、配列の項目は異なるクエリの結果であるため、 arr1の製品の量はarr2の製品の量と必ずしも一致せず、配列に重複した製品はありません。

各配列で製品ごとに減算を行う必要があります。

var total =
  from a1 in arr1
  join a2 in arr2 on a1.IdProducto equals a2.IdProducto
  select new
  {
    Product = a1.IdProduct,
    Price = a1.Price - a2.Price
  };
4

3 に答える 3

2

このようなもの?

var q = from a in arr1
                  join b in arr2 on a.IdProduct equals b.IdProduct into c
              from x in c.DefaultIfEmpty()
              select new Data {
                IdProduct = a.IdProduct,
                Price = x == null ? a.Price : a.Price - x.Price
              };

arr1 = q.ToArray();
于 2013-04-11T15:20:35.033 に答える
0

合計価格差Dataのあるの 2 つの配列がありますか?

arr1.Sum(d => d.Price) - arr2.Sum(d => d.Price);

基本的に、このコードは両方の配列を合計し、後で減算します。したがって、総作業量は配列の長さに比例して増加O(n+m)します: .

于 2013-04-11T15:19:33.733 に答える