簡體   English   中英

不使用linq過濾對象列表C#

[英]Filtering a list of objects without linq c#

我有一個稱為圖像的對象列表,這些對象是通過解析文本文件獲得的。 它們包含詳細信息,例如類別和說明。 我希望能夠在列表中進行搜索以找到具有特定類別的圖像,然后在我已設置的表單上顯示它們。 我想對它們進行過濾,然后還可以還原到未過濾的視圖。

class Image
{
    public string FileName { set; get; }
    public string Description { set; get; }
    public string Catagory { set; get; }
    public string Date { set; get; }
    public string Comments { set; get; }
}

這就是我要在Linq做的

string chosenCatagory = CatagoryComboBox.Text;

ImageList = ImageList.Where(x => x.Catagory == chosenCatagory).ToList();

不使用Linq來解決此問題的最佳方法是什么?

您可以使用List的FindAll方法:

ImageList = ImageList.FindAll(x => x.Catagory == chosenCatagory);

使用兩個列表。 ImageList包含所有數據,而DisplayList僅用您要顯示的內容填充。

DisplayList = ImageList.FindAll(x => x.Catagory == chosenCatagory);

如果要還原,請將DisplayList設置回ImageList。

DisplayList = ImageList;

如果您想做更多高級的事情,也可以看看CollectionView 它支持過濾,分組和排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM