我有一个
ConcurrentBag<Tuple<string,int,decimal,string>> pricelist
想把它分类
pricelist.Item3
我以前只是
List<Tuple<string,int,decimal,sting>> priceList
并将其排序为:
priceList.Sort((x, y) => x.Item3.CompareTo(y.Item3));
由于多线程处理,我将其与concurrent bag交换,但我不知道如何对并发包进行排序。
因此,请帮我分类
priceList
通过
Item3
这是我当前的伪代码:
ConcurrentBag<(string intemID, int amount, decimal price, string seller)> temporaryPriceList = new ConcurrentBag<(string, int, decimal, string)>();
Parallel.ForEach(cardProductIDs, (productID) =>
{
int indexCondition = GlobalVar.cardConditions.IndexOf(card.condition);
foreach (var price in task.GetProductSellers(int.Parse(productID), minUserScore, idLanguage, indexCondition))
{
temporaryPriceList.Add(price);
}
});
temporaryPriceList.OrderBy(element.price);
这是我以前的工作代码:
List<Tuple<string, int, decimal, string>> temporaryPriceList = new List<Tuple<string, int, decimal, string>>();
// add sellers for productcategory
foreach (string productID in cardProductIDs)
{
int indexCondition = GlobalVar.cardConditions.IndexOf(card.Item3);
temporaryPriceList.AddRange(GetProductSellers(int.Parse(productID), minUserScore, idLanguage, indexCondition));
}
// sort
temporaryPriceList.Sort((x, y) => x.Item3.CompareTo(y.Item3));
// Process with the cheapest sellers