You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin中如何筛选集合并将处理后结果绑定到ListView展示

解决方案

你可以通过LINQ查询或者修改原有循环逻辑两种方式实现筛选需求,具体修改如下:

前置准备

如果使用LINQ方案,需要先在代码文件顶部引入对应命名空间:

using System.Linq;

方案1:LINQ简洁写法(推荐)

直接对传入的arg集合做筛选和字段映射,替换原有直接赋值lstLevel2.ItemsSource = arg;的逻辑即可:

public void MarkerPressed2()
{
    MessagingCenter.Subscribe<object, IEnumerable<AlertLevelOnClick>>(this, "PinInfo", (sender, arg) =>
    {
        // 筛选levelForecastOnClick等于1的条目,仅保留需要的两个字段
        var filteredData = arg.Where(item => item.levelForecastOnClick == 1)
                              .Select(item => new AlertLevelOnClick
                              {
                                  dateForecastOnClick = item.dateForecastOnClick,
                                  levelForecastOnClick = item.levelForecastOnClick
                              })
                              .ToList();
        // 将筛选后的集合赋值给ListView
        lstLevel2.ItemsSource = filteredData;
    });
}

方案2:基于你原有循环逻辑修改

如果你不想引入LINQ,也可以调整原有循环的判断逻辑,仅把符合条件的条目加入结果集合:

public void MarkerPressed2()
{
    MessagingCenter.Subscribe<object, IEnumerable<AlertLevelOnClick>>(this, "PinInfo", (sender, arg) =>
    {
        var listAlert = new List<AlertLevelOnClick>();
        foreach (var item in arg)
        {
            // 仅保留levelForecastOnClick等于1的条目
            if (item.levelForecastOnClick == 1)
            {
                var currentData = new AlertLevelOnClick() 
                {
                    dateForecastOnClick = item.dateForecastOnClick,
                    levelForecastOnClick = item.levelForecastOnClick
                };
                listAlert.Add(currentData);
            }
        }
        // 把筛选后的集合赋值给ListView
        lstLevel2.ItemsSource = listAlert;
    });
}

补充说明

  • 如果你后续需要切换筛选条件为level等于2,只要把判断条件里的== 1改成== 2即可
  • 两种方案都只会保留你需要的dateForecastOnClick和levelForecastOnClick两个字段,符合展示需求

内容的提问来源于stack exchange,提问作者Blagovest Pizhev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:15:02