如何在C#中按Item3对ConcurrentBag <tuple <string,int,decimal >>()进行排序?

时间:2018-07-07 10:51:21

标签: c#

我有一个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);

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式对数据进行排序:

temporaryPriceList.ToArray()
.OrderBy(v=>v.Item3)
.ToArray()