如何从 JSON ObservableCollection 中过滤掉项目,使它们不显示在列表中?

我正在使用 SearchBar,我可以返回一些 API JSON 数据来查找公司名称及其股票代码。这会被很好地反序列化为 ObservableCollection 并显示在 ListView 中。


但是,有时结果包含带有“-”(破折号)的股票代码。我想以某种方式测试 ObservableCollection 中的每个项目,并阻止符号名称中包含“-”的任何项目,然后将其排除在绑定到 ListView 的 Collection 中。


这是我的搜索对象:


public class SearchObject

    {

        public string symbol { get; set; }

        public string securityName { get; set; }

        public string securityType { get; set; }

        public string region { get; set; }

        public string exchange { get; set; }

    }

这是我的工作 JSON API 代码:


 vSearchSymbol = mySearchBar.Text;

 SearchUrl = string.Format("MY SEARCH API URL {0}", vSearchSymbol);


 // Activity indicator visibility ON

 activity_indicator.IsRunning = true;


 // Getting JSON data from the Web

 var content = await _client.GetStringAsync(SearchUrl);


 // Deserialize the JSON data from content

 var tr = JsonConvert.DeserializeObject<List<SearchObject>>(content);


 // After deserializing, we store our data in an ObservableCollection List called 'trends'

 ObservableCollection<SearchObject> trends = new ObservableCollection<SearchObject>(tr);


 // Bind the list to the ListView

 myList.ItemsSource = trends;


 // Check the number of Items in the Observable Collection

 int i = trends.Count;

 if (i > 0)

 {

  // If the list count is > 0 then stop activity indicator

  activity_indicator.IsRunning = false;

  }

消除 ObservableCollection 中包含“-”符号的 SearchObject 项的最佳方法是什么?换句话说,我不希望任何带有包含破折号的符号的项目显示在 ListView 中。


任何有关正确语法的指导将不胜感激。


繁花不似锦
浏览 136回答 1
1回答

桃花长相依

我希望我正确理解了你的意思。一种更简单的方法是在使用 LINQ 创建 ObservableCollection 之前过滤掉 SearchObject。例如,&nbsp;ObservableCollection<SearchObject>&nbsp;trends&nbsp;=&nbsp;new&nbsp;ObservableCollection<SearchObject>(&nbsp;tr.Where(x=>!x.symbol.Contains("-")));现在,您的 ObservableCollection 将包含不具有“-”字符的符号的项目。
打开App,查看更多内容
随时随地看视频慕课网APP