我有一个Create Table t_raw
(
Month nvarchar(255),
Name nvarchar(255),
Clear nvarchar(255),
Contact nvarchar(255),
Viewed nvarchar(255),
Clicks float
)
Insert Into t_raw values('Jan-18','ABC','DTC','dtc@mz.com','GM','2'),
('Feb-18','QSC','FMM','fmm@mp.com','AM','6'),
('Mar-18','ABC','DTC','lta@mz.com','OPS','9'),
('Jan-18','MHY','GNMA','gnma@sr.com','REP','3'),
('Feb-18','VRL','XLR','xlr@vn.com','TUC','5'),
('Mar-18','MHY','GNMA','gnma@sr.com','XEM','7'),
('Jan-18','ABC','DTC','mat@sd.com','SUD','2'),
('Feb-18','MHY','GNMA','mio@fr.com','AFT','4'),
('Mar-18','TOC','ADF','fin@yu.com','BPL','2')
,并想按ConcurrentBag<Tuple<string,int,decimal,string>> pricelist
进行排序
我以前只是有一个pricelist.Item3
并用以下内容进行了排序:
List<Tuple<string,int,decimal,sting>> priceList
由于多线程处理,我将它与ConcurrentBag交换了,但我不知道如何对并发包进行排序。
由于这个原因,请帮助我如何按priceList.Sort((x, y) => x.Item3.CompareTo(y.Item3));
对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);
答案 0 :(得分:0)
您可以通过以下方式对数据进行排序:
temporaryPriceList.ToArray()
.OrderBy(v=>v.Item3)
.ToArray()