1

メソッドに渡された 2 つのパラメーターがあり、それらを最終的なクエリ リストにアタッチする必要があります。

(第 1 パラメーター)

string[] Price= new string[5];
Price= new string[] { "50", "25", "35" };

(第 2 パラメーター)

List<string> DiscountPrice= new List<string>();
DiscountPrice.Add ("10"); 
DiscountPrice.Add ("5");
DiscountPrice.Add ("3");


var list= (from d in context.List
           where ....
           select new MyNewList
           {
                 Name = d.Name,                    
                 Country = d.Country,
                 **Price = ??** //how do I attach the parameters one by one? In the order they were saved?
                 **DiscountPrice** = ?? 

           }).ToList<MyNewList>();
4

1 に答える 1

5

リスト要素をインデックスで照合したいようです。ゼロからリスト要素の数まで反復し、インデックスで各要素にアクセスできます。

var prices = new string[] { "50", "25", "35" };
var discountPrices = new List<string>() { "10", "5", "3" };

var items = (from d in context.List
             where ....
             select new { d.Name, d.Country }).ToList();

var list =  (from index in Enumerable.Range(0, items.Count())
             select new MyNewList
                    {
                        Name = items[index].Name,                    
                        Country = items[index].Country,
                        Price = prices[index],
                        DiscountPrice = discountPrices[index]
                    }).ToList();

もう 1 つの方法は、すべてをまとめて圧縮することです

var list = items.Zip(prices, (item, price) => new { item, price })
                .Zip(discountPrices, (x, discountPrice) => new { x.item, x.price, discountPrice})
                .Select(x => new MyNewList
                             {
                                 Name = x.item.Name,                    
                                 Country = x.item.Country,
                                 Price = x.price,
                                 DiscountPrice = x.discountPrice
                             })
                .ToList();
于 2012-10-15T00:41:54.910 に答える