1

以下に示すように、別のクラスからショッピング カートの数量を個別に取得しています。リストに含まれる数量からそのショッピング カートの数量を減らしたいのですが、それをクエリに含めるにはどうすればよいですか。誰でも私に提案してください。

//int quantityinshoppingcart = classes.ShoppingCart.checkingQuantity(CustomerId,ItemId);


//Binds the data to the repeater control
rptcontrol.DataSource =   from p in l_List
      select new
      {
        ItemId = p.ItemId,
        ItemName = p.ItemName,
        Quantity = p.Quantity,                                                        
        //I want quantity as (Quantity = p.quantity - quantityinshoppingcart),
      };
      rptcontrol.DataBind();  
4

3 に答える 3

5

letクエリでキーワードを使用できます:

var q = from p in l_List
        let quantityInShoppingCart = MethodThatGetsThisQuantity(p.ItemId)
        let computedQuantity = p.Quantity - quantityInShoppingCart
        select new { ItemId = p.ItemId,
                     ItemName = p.ItemName,
                     Quantity = computedQuantity 
                   };
于 2013-02-18T12:02:15.997 に答える
1

数量のショッピングカート計算を Linq Expression に含めようとしましたか? このような ?

rptcontrol.DataSource =   from p in l_List
      select new
      {
        ItemId = p.ItemId,
        ItemName = p.ItemName,
        Quantity = p.Quantity - SampleProject._classes.ShoppingCart.checkingQuantity(CustomerId, p.ItemId),                                                        
        //I want quantity as (Quantity = p.quantity - quantityinshoppingcart),
      };
      rptcontrol.DataBind();

ショッピング カートと l_List の相対的なサイズ、およびショッピング カートのコンテンツにアクセスするコストに応じて、バインド中に事前に作成されたディクショナリを使用して、ショッピング カート内の数量にすばやくアクセスすることができます。

これが役立つことを願っています

于 2013-02-18T12:02:59.150 に答える
1

これを試すことができます。l_List が完全にロードされていれば問題ありません (つまり、データソースにアクセスする時点でクエリを実行しようとすると機能しない可能性があります)。

//Binds the data to the repeater control
rptcontrol.DataSource =   from p in l_List
                                        select new
                                        {
                                            ItemId = p.ItemId,
                                            ItemName = p.ItemName,
                                            Quantity = p.Quantity - SampleProject._classes.ShoppingCart.checkingQuantity(CustomerId,p.ItemId)                                                
                                        };
于 2013-02-18T12:01:45.980 に答える