为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
繁花不似锦 2023-07-22 18:39:06
我正在使用 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 中。任何有关正确语法的指导将不胜感激。
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

我希望我正确理解了你的意思。一种更简单的方法是在使用 LINQ 创建 ObservableCollection 之前过滤掉 SearchObject。例如,

 ObservableCollection<SearchObject> trends = new ObservableCollection<SearchObject>( tr.Where(x=>!x.symbol.Contains("-")));

现在,您的 ObservableCollection 将包含不具有“-”字符的符号的项目。


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信