第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

排序接口列表 C#

排序接口列表 C#

C#
瀟湘沐 2021-06-08 17:40:27
我正在嘗試按日期對接口列表進(jìn)行排序,但我無法弄清楚。var agencyList = new List<INewsItemBE>();var item = new News1BE();//add itemsagencyList.Add(item)var item = new News2BE();//add itemsagencyList.Add(item);添加項(xiàng)目后,我想agencyList用這樣的方式按日期排序,但我無法讓它工作。agencyList.Sort(delegate (News1BE c1, News1BE c2) { return c1.PublishDate.CompareTo(c2.PublishDate); });agencyList.Sort(delegate (News1BE a, News1BE b) => a.PublishDate.CompareTo(b.PublishDate));agencyList = agencyList.OrderBy(x => cant find anything at x.).ToList();
查看完整描述

2 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

試試 LINQ:

using System.Linq;
var ordered = agencyList.OrderBy(x => x.PublishDate);

或者如果你需要它降序:

var orderedDesc = agencyList.OrderByDescending(x => x.PublishDate);

如果您再次需要原始變量中的列表,您可以調(diào)用.ToList()

agencyList = agencyList.OrderBy(x => x.PublishDate).ToList();

如果 LINQ 不適合您(或者您希望獲得最佳性能從而拒絕 LINQ 帶來的開銷),您可以使用.Sort您嘗試的方法:

agencyList.Sort((item1, item2) => item1.PublishDate.CompareTo(item2.PublishDate));


查看完整回答
反對 回復(fù) 2021-06-20
?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以嘗試使用 SortedList 代替 List,這樣當(dāng)您添加項(xiàng)目時(shí)它會自動(dòng)排序。


定義您的類/接口:


interface INews1BE

{

    DateTime PublishedDate { get; set; }

}


class News1BE : INews1BE

{

    public DateTime PublishedDate { get; set; }

}

為 DateTime 定義比較器:


class DateTimeAscendingComparer : IComparer<DateTime>

{

    public int Compare(DateTime a, DateTime b)

    {

        return a.CompareTo(b);

    }

}

現(xiàn)在創(chuàng)建比較器和排序列表,將比較器傳遞給 SortedList 構(gòu)造函數(shù):


var comparer = new DateTimeAscendingComparer();

var sortedList = new SortedList<DateTime, INews1BE>(comparer);

添加一些項(xiàng)目并檢查結(jié)果:


var item1 = new News1BE() 

{

    PublishedDate = DateTime.Now

};


var item2 = new News1BE()

{

    PublishedDate = item1.PublishedDate.AddSeconds(-30)

};


sortedList.Add(item1.PublishedDate, item1);


//item2 goes before item1

sortedList.Add(item2.PublishedDate, item2);


foreach(var x in sortedList)

{

    Console.WriteLine(x.Key);

}

您還可以通過 Value 訪問您的對象:


foreach (var x in sortedList)

{

    Console.WriteLine(x.Value.PublishedDate);

}

或者您可以迭代 Values 以立即訪問您的 INews1BE 對象:


foreach(var x in sortedList.Values)

{

    Console.WriteLine(x.PublishedDate);

}

實(shí)際上,如果您只關(guān)心升序,則不必為 DateTime 定義比較器 - 這是默認(rèn)行為,因此您可以創(chuàng)建 SortedList 而無需將比較器傳遞給構(gòu)造函數(shù):


var sortedList = new SortedList<DateTime, INews1BE>();

但是,如果您需要降序,只需在比較時(shí)將DateTimea與 DateTime切換b:


class DateTimeDescendingComparer : IComparer<DateTime>

{

    public int Compare(DateTime a, DateTime b)

    {

        return b.CompareTo(a);

    }

}


查看完整回答
反對 回復(fù) 2021-06-20
  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號